いわゆるブールベクトル(別名logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
注意!
オペレータではない、すなわちとして機能!TRUE == FALSE
:
myData = myData[!row_to_keep,]
これは@mrwabの回答(+1 btw :))と比較すると少し扱いにくいように見えますが、論理ベクトルはその場で生成できます(列の値が特定の値を超える場合など)。
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
ブールベクトルをインデックスのベクトルに変換できます。
row_to_keep = which(myData$A > 4)
最後に、非常に巧妙なトリックは、この種のサブセットを抽出だけでなく割り当てにも使用できることです。
myData$A[myData$A > 4,] <- NA
列A
が割り当てられているNA
(番号でA
はない)場合、4を超えます。