あなたにもできる!ハーバード留学!!~アラフォーからのボストン留学体験記

アラフォー研究者のボストン留学体験ブログ。
研究・生活・英語・ITを中心に留学ライフハックスをお教えします!

box plotとdot plotの重ね合わせ(How to overlay your box plot with dot plot by R?)

2015-08-11 23:57:07 | バイオ系のためのR覚え書
次にやりたいのは、boxplotとdotplotの重ね合わせでしょうか?

#乱数で、サンプル数100, 平均20, 標準偏差5のデーターをつくる
> a<-rnorm(100,20,5)
#乱数で、サンプル数60, 平均10, 標準偏差3のデーターをつくる
> b<-rnorm(60,10,3)
#乱数で、サンプル数80 平均5, 標準偏差3のデーターをつくる
> c<-rnorm(80,5,3)

ここで問題となるのは、dotplotを生成する関数stripchart()が複数のオブジェクトを入れられないことです。
そこでdata.frame()をつかってデーターフレームを作りたいところですが、このケースのようにサンプル数が違う場合data.frameが働きません。そこでb, cのあまりの部分に空の値である。NAを放り込んで、サンプル数を同じにしてデーターフレームをつくってみます。

#b[61]~b[100]にNAを入れる
> b[61:100]<-NA
#c[81]~c[100]にNAを入れる
> c[81:100] <-NA
#ベクトルa,b,cからなるデーターフレームを作る
> data<- data.frame(a,b,c)

#確認
> data

ここまでくればだいたいOKでしょう。




といったグラフが得られるでしょう。
このままだとやはりみにくいので、

> boxplot(data, ylim=c(0,35),outline=F,col=c("Blue", "Red", "Green"),names=c("control","Treatment1", "Treatment2"),plot=T,ylab="% of CD34+ cells")

> stripchart(data, vertical = TRUE, pch = 21, col = "black", bg =NA,method = "jitter", add = TRUE)
として


とか

> boxplot(data, ylim=c(0,35),outline=F,col=c("Blue", "Red", "Green"),names=c("control","Treatment1", "Treatment2"),plot=T,ylab="% of CD34+ cells")

> stripchart(data, vertical = TRUE, pch = 21, col = "maroon", bg ="orange",method = "jitter", add = TRUE)
として



とかグラフをつくってみるとよいのではないでしょうか?

*Rスクリプトをうまくブログに乗せる方法がわからず、以前の表記に戻しました。

Rでのbox plot生成必勝法(タイトルを入れて外れ値を消そう&ファイルの保存)

2015-08-11 23:22:33 | バイオ系のためのR覚え書
まず生物系でよく行うのがbox plot生成でしょう。
Rだと簡単にできます!

まずはデモ用データーを乱数で生成してからボックスプロットを作成してみます。

a  rnorm(100,20,5)
#乱数で、サンプル数60, 平均10, 標準偏差3のデーターをつくる
b rnorm(60, 10,3)
#乱数で、サンプル数80 平均5, 標準偏差3のデーターをつくる
c rnorm(80, 5,3)
 
#ボックスプロット生成
boxplot(a,b,c)

多分こんな感じにディスプレーされるのではないかと思います。


何もしないとデーターは保存されないので、例えばpngファイルで保存してみると、
#png ファイル生成
png(filename="example.png")
boxplot(a,b,c)
dev.off()

このように指定すると、ワーキングディレクトリにファイルが保存されます。
ただこれだけだと、意味不明なグラフですから、もう少しサンプル名、Y軸等を記入して使えるグラフにしてみましょう。また外れ値の表示である丸もあると、いろいろ突っ込まれそうですから消してみましょう!

#ボックスプロット生成 y軸のレンジ(ylim=c(0,40))、外れ値を消す(outline=F)、色指定(col=c("Blue", "Red", "Green"))、サンプル名名指定(names=c("control","Treatment1", "Treatment2")), Y軸名指定(ylab="% of CD34+ cells"))
boxplot(a,b,c, ylim=c(0,40),outline=F,col=c("Blue", "Red", "Green"),names=c("control","Treatment1", "Treatment2"),plot=T,ylab="% of CD34+ cells")

するとこんな感じなグラフになるでしょうか?


保存は同様に
#png ファイル生成
png(filename="example2.png")
boxplot(a,b,c, ylim=c(0,40),outline=F,col=c("Blue", "Red", "Green"),names=c("control","Treatment1", "Treatment2"),plot=T,ylab="% of CD34+ cells")
dev.off()


png以外にも、pdf, jpeg,bmpなどのファイルでの保存が可能であり詳しくはQuick Rのサイトを参照していただければ良いです。例えばpdfでの保存は次のようになります。

#pdfファイル生成
pdf("example2.pdf")
boxplot(a,b,c, ylim=c(0,40),outline=F,col=c("Blue", "Red", "Green"),names=c("control","Treatment1", "Treatment2"),plot=T,ylab="% of CD34+ cells")
dev.off()

Rでワーキングディレクトリを指定するには?

2015-08-11 22:35:22 | バイオ系のためのR覚え書
最近画像処理及び遺伝子解析でRを使わざるを得ない状況ができてきた。かなり忘れっぽいので、覚書としてピットフォールをブログにまとめていこうかと思います。

まずわりとよく出てきて初心者だとあまり注意をはらっていないのが、どこのフォルダにあるデータを使い、どこのフォルダにファイルを保存するのか指定すること。
まずはそのポイントを以下に述べておきます。なおRスクリプトのハイライトは、inside-Rさんのサイトのツールを使いました。

#今のワーキングディレクトリを知る
getwd()
 
#Macでデフォだとこんな感じ[1] "/Users/username"
 
#ワーキングディレクトリを指定する
setwd()
 
#多分マックだとこんな感じで、Desktopにあるフォルダをワーキングディレクトリに指定できる
 
setwd("Users/username/Desktop/folder1")
 
#Documentsフォルダだとこんな感じ
 
setwd("Users/username/Documents/folder1")
 
#適宜次のようにワーキングディレクトリ内にあるフォルダやファイルを確認するとよい
dir()