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