読者です 読者をやめる 読者になる 読者になる

Rでデータフレームの値を削除する方法とか

データフレームの特定の行、列を削除する方法について、毎回調べるのがあれなので、メモします。

まず、身長、体重、年齢を列に持つデータフレームを作成しました。こんな感じです。ちなみに、rnormは乱数を発生させる関数です。使い方はこんな感じで、rnorm(乱数の個数,mean=乱数の平均値,sd=標準偏差)です。

> human <- data.frame(height=150:170,weight= rnorm(21,mean= 50,sd = 5),age=rnorm(21,mean=26,sd=8))
> human
   height   weight      age
1     150 44.75967 28.94806
2     151 57.96117 26.02334
3     152 45.15299 13.39298
4     153 49.90601 34.20634
5     154 51.55305 20.94567
6     155 45.33123 33.38167
7     156 50.02457 36.89832
8     157 58.91771 19.94350
9     158 60.83971 23.45243
10    159 47.16219 18.19852
11    160 47.28003 37.04118
12    161 46.43251 28.81939
13    162 49.81065 32.33222
14    163 52.29405 26.48557
15    164 56.43374 30.43829
16    165 48.36132 21.19204
17    166 49.44772 12.85528
18    167 58.82290 39.09660
19    168 57.02730 31.68247
20    169 49.80904 26.41245
21    170 47.17991 23.60593

こんな感じのデータフレームが出来上がりました。 行を削除する場合はデータフレーム[-削除する列番号,]、-列を削除する場合はデータフレーム[,-削除する列番号] ある範囲を指定する場合は:でつなげます。

> head(human)
  height   weight      age
1    150 44.75967 28.94806
2    151 57.96117 26.02334
3    152 45.15299 13.39298
4    153 49.90601 34.20634
5    154 51.55305 20.94567
6    155 45.33123 33.38167
> human <- human[-1,]
> head(human)
  height   weight      age
2    151 57.96117 26.02334
3    152 45.15299 13.39298
4    153 49.90601 34.20634
5    154 51.55305 20.94567
6    155 45.33123 33.38167
7    156 50.02457 36.89832
> human <- human[-1:-3,]
> head(human)
   height   weight      age
5     154 51.55305 20.94567
6     155 45.33123 33.38167
7     156 50.02457 36.89832
8     157 58.91771 19.94350
9     158 60.83971 23.45243
10    159 47.16219 18.19852
> human <- human[,-3]
> head(human)
   height   weight
5     154 51.55305
6     155 45.33123
7     156 50.02457
8     157 58.91771
9     158 60.83971
10    159 47.16219

こんな感じです。

以下の記事を参考にさせて頂きました。ありがとうございます! http://www.okada.jp.org/RWiki/?%A5%C7%A1%BC%A5%BF%A5%D5%A5%EC%A1%BC%A5%E0Tips%C2%E7%C1%B4#o419ec64

http://maoringo.blogspot.jp/2010/11/r.html