2013年11月4日月曜日

R 3.0.2でdata.frameにセットされているデータの中から欲しいrowのデータのみを抽出してサブセットする


以下の環境で、30つのデータをセットして、
set.seed(31);
heightsCM = rnorm(30,mean=188, sd=5);
weightsK = rnorm(30,mean=84,sd=3);
hasDaughter = sample(c(TRUE,FALSE),size=30,replace=T);

dataFrame = data.frame(heightsCM,weightsK,hasDaughter); 
heightsCM > 188 のみのデータを取り出し、データセットし直して、
その平均体重Kを算出する。



> dataFrameSubset <- dataFrame[dataFrame$heightsCM > 188, ]
> dataFrameSubset
   heightsCM weightsK hasDaughter
1   188.2779 80.13076       FALSE
3   195.9788 86.20844        TRUE
4   192.8242 80.95240        TRUE
5   195.5313 84.24389       FALSE
7   189.9518 79.42307        TRUE
8   192.5960 80.60577        TRUE
13  188.8570 78.62660       FALSE
18  192.2819 76.37770        TRUE
19  188.1666 85.55169       FALSE
23  191.0990 81.44967        TRUE
24  191.7942 88.69745       FALSE
26  188.3771 81.16297       FALSE
27  199.7072 83.72339        TRUE
28  188.0876 86.53569        TRUE
> mean(dataFrameSubset$heightsCM)
[1] 191.6807
> mean(dataFrameSubset$weightsK)
[1] 82.40639
とこんな感じに取り出せます。