LoginSignup
15
14

More than 5 years have passed since last update.

生物系の人が苦しめられるあのデータ形式をRで扱いやすいように変換する #rstatsj

Last updated at Posted at 2014-03-19

生物系の人なら一度は見たことあると思うんですけど、データをこういう形式で渡されることって、ありますよね。
mouse1.png
例えばマウスの体重だと思ってください。
コントロールと2つのトリートメントに対して ANOVA かけたいとしましょう。
でも、このデータ形式って、そのままじゃ R で統計解析できないんですよね。
今回はこのデータ形式を R に入力できるように変換する手順を紹介します。

  1. まず、空欄に NA を挿入します。これはあとで read.table() で R に読み込むために必要です。
    mouse2.png

  2. これをファイルに保存してもいいのですが、今回はクリップボードから読み込みます。クリップボードというのは、コピーした内容が一時的に保管される場所のことです。なので、Excel 上でデータのあるセルを選択して普通にコピーしてください。(Ctrl-C)

  3. 次のようにすれば、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))

参考

  1. Stack or Unstack Vectors from a Data Frame or List
  2. Excel等のデータをサクっとRに持って来る方法
  3. dplyr入門
15
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
15
14