Ви також можете працювати з так званим булевим вектором, ака 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.