いわゆるブールベクトル、別名を使用することもできますlogical
。
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
!
演算子は NOT として機能することに注意してください。つまり、次のようになり!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 を超える場所。