2 人の個人のみを扱っている場合は、それぞれを個別にサブセット化してから、rbind
各サブセットを ing することで回避できます。
wloc08F07001 <- wloc08[which(wloc08$ID == "F07001")[1:500], ]
wloc08F07005 <- wloc08[which(wloc08$ID == "F07005")[1:500], ]
reduced <- rbind(wloc08F07001, wloc08F07005)
これをより一般化できるようにするために、特に大量のデータを扱っている場合は、data.table
パッケージを検討することを検討してください。ここに例があります
library(data.table)
wloc08DT<-as.data.table(wloc08) # Create data.table
setkey(wloc08DT, "ID") # Set a key to subset on
# EDIT: A comment from Matthew Dowle pointed out that by = "ID" isn't necessary
# reduced <- wloc08DT[c("F07001", "F07005"), .SD[1:500], by = "ID"]
reduced <- wloc08DT[c("F07001", "F07005"), .SD[1:500]]
最後のステップの構文を分解するには:
c("F07001", "F07005")
F07001
: これは、キーがまたはに等しいすべての行を見つけることによって、データをサブセット化しますF07005
。また、「by without by」を扇動します (詳細については、を参照?data.table
してください) 。
.SD[1:500]
:.SD
行 1:500 を選択して、オブジェクト (サブセット化された data.table) をサブセット化します。
EDITこの部分は Matthew Dowle による修正のおかげで削除されました。「by without by」は、ステップ 1 によって開始されます。以前: ( by = "ID"
: これは[.data.table
、ステップ 2 の操作を ID ごとに個別に実行することを示します。この場合、ステップ 1 で指定した ID のみです。)