KuboWeb top

更新: 2018-01-16 12:26:08

生態学のデータ解析 - R-primer/data.frame 実習 1

(まだ準備中です)


もくじ


データを読みこんで data.frame を作り,それを表示する 

> d <- read.csv("data.csv")
> d
   treatment size seed
1    control 21.3    9
2       trtX 24.2   19
3    control 12.0    1
4       trtX 16.1    4
5    control 21.8   13
6       trtX 20.2    6
7    control 22.7    8
8       trtX 23.8    8
9    control 19.5    7
10      trtX 26.4   22
11   control 20.1    3
12      trtX 27.3   31
13   control 22.5   14
14      trtX 21.8   19
15   control 18.6    4
16      trtX 25.3   26
17   control 23.5   11
18      trtX 19.7    6
19   control 27.9   22
20      trtX 22.0   17

> head(d) # 最初の 6 行が表示される
  treatment size seed
1   control 21.3    9
2      trtX 24.2   19
3   control 12.0    1
4      trtX 16.1    4
5   control 21.8   13
6      trtX 20.2    6

> head(d, 3) # 最初の 10 行が表示される
  treatment size seed
1   control 21.3    9
2      trtX 24.2   19
3   control 12.0    1

> tail(d, 3) # 最後の 3 行が表示される
   treatment size seed
18      trtX 19.7    6
19   control 27.9   22
20      trtX 22.0   17

> edit(d) # d を編集する

data.frame から行と列をとりだす 

> d[1:3,] # 1 行めから 3 行めをとりだす
  treatment size seed
1   control 21.3    9
2      trtX 24.2   19
3   control 12.0    1

> d[c(1, 3, 5),] # 1, 3, 5 行めをとりだす
  treatment size seed
1   control 21.3    9
3   control 12.0    1
5   control 21.8   13

> d[, 1] # 1 列めをとりだす
 [1] control trtX    control trtX    control trtX    control trtX    control trtX   
[11] control trtX    control trtX    control trtX    control trtX    control trtX   
Levels: control trtX

> d[4:6, 2:3] # 4-6 行めの 2-3 列めをとりだす
  size seed
4 16.1    4
5 21.8   13
6 20.2    6

# 列の選びかたに 3 とおりある (どれも重要)
> d[, 3] # 3 列めをとりだす
 [1]  9 19  1  4 13  6  8  8  7 22  3 31 14 19  4 26 11  6 22 17

> d$seed # 上とおなじことをやっている
 [1]  9 19  1  4 13  6  8  8  7 22  3 31 14 19  4 26 11  6 22 17

> d[, "seed"] # これも同じ
 [1]  9 19  1  4 13  6  8  8  7 22  3 31 14 19  4 26 11  6 22 17

data.frame から条件つきデータとりだし 

> d[d$treatment == "trtX",] # treatment が trtX のデータ
   treatment size seed
2       trtX 24.2   19
4       trtX 16.1    4
6       trtX 20.2    6
8       trtX 23.8    8
10      trtX 26.4   22
12      trtX 27.3   31
14      trtX 21.8   19
16      trtX 25.3   26
18      trtX 19.7    6
20      trtX 22.0   17

> d[d$size > 25.0,] # size が 25.0 より大きいのデータ
   treatment size seed
10      trtX 26.4   22
12      trtX 27.3   31
16      trtX 25.3   26
19   control 27.9   22

> d[d$seed <= 6,] # seed が 6 以下であるデータ
3    control 12.0    1
4       trtX 16.1    4
11   control 20.1    3
15   control 18.6    4
...

> d[d$seed <= 6 & d$seed > 2,] # seed が 6 以下,かつ 2 より大
...

> d[d$seed > 6 | d$seed <= 2,] # seed が 6 より大,または 2 以下
...

data.frame 内の並べかえ 

> d <- d[order(d$size),] # d$size の小さい順に並べかえる
> d <- d[rev(order(d$size)),] # d$size の大きい順に並べかえる