Sie können auch mit einem sogenannten booleschen Vektor arbeiten, auch bekannt als logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Beachten Sie, dass der !
Operator als NOT fungiert, dh !TRUE == FALSE
:
myData = myData[!row_to_keep,]
Dies scheint im Vergleich zu @ mrwabs Antwort (+1 übrigens :)) etwas umständlich zu sein, aber ein logischer Vektor kann im laufenden Betrieb generiert werden, z. B. wenn ein Spaltenwert einen bestimmten Wert überschreitet:
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
Sie können einen booleschen Vektor in einen Vektor von Indizes umwandeln:
row_to_keep = which(myData$A > 4)
Ein sehr guter Trick ist schließlich, dass Sie diese Art der Teilmenge nicht nur zum Extrahieren, sondern auch zum Zuweisen verwenden können:
myData$A[myData$A > 4,] <- NA
Dabei wird eine Spalte A
zugewiesen NA
(keine Nummer), wobei A
4 überschritten wird.