También puede trabajar con un llamado vector booleano, también conocido como logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Tenga en cuenta que el !
operador actúa como un NOT, es decir !TRUE == FALSE
:
myData = myData[!row_to_keep,]
Esto parece un poco engorroso en comparación con la respuesta de @ mrwab (+1 por cierto :)), pero se puede generar un vector lógico sobre la marcha, por ejemplo, cuando el valor de una columna excede un cierto valor:
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
Puede transformar un vector booleano en un vector de índices:
row_to_keep = which(myData$A > 4)
Finalmente, un truco muy bueno es que puedes usar este tipo de subconjuntos no solo para la extracción, sino también para la asignación:
myData$A[myData$A > 4,] <- NA
donde A
se asigna la columna NA
(no un número) donde A
excede 4.