Puoi anche lavorare con un cosiddetto vettore booleano, ovvero logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Si noti che l' !
operatore funge da NOT, ovvero !TRUE == FALSE
:
myData = myData[!row_to_keep,]
Questo sembra un po 'complicato rispetto alla risposta di @ mrwab (+1 btw :)), ma un vettore logico può essere generato al volo, ad esempio dove un valore di colonna supera un certo valore:
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
Puoi trasformare un vettore booleano in un vettore di indici:
row_to_keep = which(myData$A > 4)
Infine, un trucco molto accurato è che puoi utilizzare questo tipo di sottoimpostazione non solo per l'estrazione, ma anche per l'assegnazione:
myData$A[myData$A > 4,] <- NA
dove A
è assegnata la colonna NA
(non un numero) dove A
supera 4.