Você também pode trabalhar com o chamado vetor booleano, também conhecido como logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Observe que o !
operador atua como um NÃO, ou seja !TRUE == FALSE
:
myData = myData[!row_to_keep,]
Isso parece um pouco complicado em comparação com a resposta de @ mrwab (+1 btw :)), mas um vetor lógico pode ser gerado em tempo real, por exemplo, onde um valor de coluna excede um determinado valor:
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
Você pode transformar um vetor booleano em um vetor de índices:
row_to_keep = which(myData$A > 4)
Por fim, um truque muito interessante é que você pode usar esse tipo de subconjunto não apenas para extração, mas também para atribuição:
myData$A[myData$A > 4,] <- NA
onde a coluna A
é atribuída NA
(não um número) onde A
excede 4.