トップ 差分 一覧 ソース 検索 ヘルプ PDF RSS ログイン

data.frame()

*disclaimer
45350

data.frame() データを入れる「枠」をつくる、もしくは、データをあつめて「枠」に入れる

まず、枠だけ作る

data.frame(列の見出し名=データの型(作る数), 列の見出し名=データの型(作る数),,,,)

  • 文字型:character
  • 数字型:numeric
> kimatu <- data.frame(ID=character(20), koku=numeric(20), suu=numeric(20), eigo=numeric(20))
> kimatu
   ID koku suu eigo
1        0   0    0
2        0   0    0
3        0   0    0
4        0   0    0
5        0   0    0
6        0   0    0
7        0   0    0
8        0   0    0
9        0   0    0
10       0   0    0
11       0   0    0
12       0   0    0
13       0   0    0
14       0   0    0
15       0   0    0
16       0   0    0
17       0   0    0
18       0   0    0
19       0   0    0
20       0   0    0

三種類の得点データがあったとして、、、(サンプルを作る)

x <- round(rnorm(20, 50, 10),1)

y <- round(rnorm(20, 50, 10),1)

z <- round(rnorm(20, 50, 10),1)

各データをデータフレームに入れていく

> kimatu$koku <- x
> kimatu$suu <- y
> kimatu$eigo <- z
> kimatu
   ID koku  suu eigo
1     46.2 40.4 50.3
2     36.0 54.7 64.7
3     46.6 61.7 48.7
4     43.2 52.6 51.8
5     49.6 42.0 43.2
6     43.1 53.5 60.4
7     39.8 51.9 42.5
8     45.8 52.9 49.7
9     53.9 36.7 43.1
10    45.9 42.0 58.8
11    35.8 47.6 52.6
12    57.4 54.1 72.3
13    40.3 58.8 43.8
14    27.3 26.7 61.3
15    48.7 53.8 43.8
16    47.6 45.7 41.6
17    49.9 44.2 43.2
18    18.9 45.0 41.3
19    42.1 49.5 44.5
20    21.9 48.4 54.1

IDも1から20いれておく

> kimatu$ID <- c(1:20)
> kimatu
   ID koku  suu eigo
1   1 46.2 40.4 50.3
2   2 36.0 54.7 64.7
3   3 46.6 61.7 48.7
4   4 43.2 52.6 51.8
5   5 49.6 42.0 43.2
6   6 43.1 53.5 60.4
7   7 39.8 51.9 42.5
8   8 45.8 52.9 49.7
9   9 53.9 36.7 43.1
10 10 45.9 42.0 58.8
11 11 35.8 47.6 52.6
12 12 57.4 54.1 72.3
13 13 40.3 58.8 43.8
14 14 27.3 26.7 61.3
15 15 48.7 53.8 43.8
16 16 47.6 45.7 41.6
17 17 49.9 44.2 43.2
18 18 18.9 45.0 41.3
19 19 42.1 49.5 44.5
20 20 21.9 48.4 54.1

合計点を右端に付け足す(各行ごとに総計 rowSums()

> kimatu$total <- rowSums(kimatu[,2:4])
> kimatu
   ID koku  suu eigo total
1   1 46.2 40.4 50.3 136.9
2   2 36.0 54.7 64.7 155.4
3   3 46.6 61.7 48.7 157.0
4   4 43.2 52.6 51.8 147.6
5   5 49.6 42.0 43.2 134.8
6   6 43.1 53.5 60.4 157.0
7   7 39.8 51.9 42.5 134.2
8   8 45.8 52.9 49.7 148.4
9   9 53.9 36.7 43.1 133.7
10 10 45.9 42.0 58.8 146.7
11 11 35.8 47.6 52.6 136.0
12 12 57.4 54.1 72.3 183.8
13 13 40.3 58.8 43.8 142.9
14 14 27.3 26.7 61.3 115.3
15 15 48.7 53.8 43.8 146.3
16 16 47.6 45.7 41.6 134.9
17 17 49.9 44.2 43.2 137.3
18 18 18.9 45.0 41.3 105.2
19 19 42.1 49.5 44.5 136.1
20 20 21.9 48.4 54.1 124.4
  • applyを使ってもOK
> kimatu$total2 <- apply(kimatu[,2:4],1,sum)
> kimatu
   ID koku  suu eigo total total2
1   1 46.2 40.4 50.3 136.9  136.9
2   2 36.0 54.7 64.7 155.4  155.4
3   3 46.6 61.7 48.7 157.0  157.0
4   4 43.2 52.6 51.8 147.6  147.6
5   5 49.6 42.0 43.2 134.8  134.8
6   6 43.1 53.5 60.4 157.0  157.0
7   7 39.8 51.9 42.5 134.2  134.2
8   8 45.8 52.9 49.7 148.4  148.4
9   9 53.9 36.7 43.1 133.7  133.7
10 10 45.9 42.0 58.8 146.7  146.7
11 11 35.8 47.6 52.6 136.0  136.0
12 12 57.4 54.1 72.3 183.8  183.8
13 13 40.3 58.8 43.8 142.9  142.9
14 14 27.3 26.7 61.3 115.3  115.3
15 15 48.7 53.8 43.8 146.3  146.3
16 16 47.6 45.7 41.6 134.9  134.9
17 17 49.9 44.2 43.2 137.3  137.3
18 18 18.9 45.0 41.3 105.2  105.2
19 19 42.1 49.5 44.5 136.1  136.1
20 20 21.9 48.4 54.1 124.4  124.4