生物系の人なら一度は見たことあると思うんですけど、データをこういう形式で渡されることって、ありますよね。
例えばマウスの体重だと思ってください。
コントロールと2つのトリートメントに対して ANOVA かけたいとしましょう。
でも、このデータ形式って、そのままじゃ R で統計解析できないんですよね。
今回はこのデータ形式を R に入力できるように変換する手順を紹介します。
-
これをファイルに保存してもいいのですが、今回はクリップボードから読み込みます。クリップボードというのは、コピーした内容が一時的に保管される場所のことです。なので、Excel 上でデータのあるセルを選択して普通にコピーしてください。(Ctrl-C)
-
次のようにすれば、R にデータを取り込むことができます。
data1 <- read.table("clipboard", header=TRUE)
data2 <- stack(data1)
data <- subset(data2, !is.na(values))
print(data)
values ind
1 4.17 ctrl
2 5.58 ctrl
3 5.18 ctrl
4 6.11 ctrl
5 4.50 ctrl
6 4.61 ctrl
7 5.17 ctrl
8 4.53 ctrl
9 5.33 ctrl
10 5.14 ctrl
11 4.81 trt1
12 4.17 trt1
13 4.41 trt1
14 3.59 trt1
15 5.87 trt1
16 3.83 trt1
17 6.03 trt1
21 6.31 trt2
22 5.12 trt2
23 5.54 trt2
24 5.50 trt2
25 5.37 trt2
26 5.29 trt2
27 4.92 trt2
28 6.15 trt2
あとは普通に ANOVA なりなんなりできると思います。
anova(aov(values~ind, data))
おまけ
dplyr
パッケージを使えば中間変数がいらなくなります。
library(dplyr)
data <- read.table("clipboard", header = TRUE) %.% stack() %.% subset(!is.na(values))