Vous pouvez également travailler avec un vecteur dit booléen, alias logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Il convient de noter que le !
agit comme un NOT, c'est-à-dire que !TRUE == FALSE
:
myData = myData[!row_to_keep,]
Cela semble un peu lourd par rapport à la réponse de @mrwab (+1 btw :)), mais un vecteur logique peut être généré à la volée, par exemple lorsque la valeur d'une colonne dépasse une certaine valeur :
myData = myData[myData$A > 4,]
myData = myData[!myData$A > 4,] # equal to myData[myData$A <= 4,]
Vous pouvez transformer un vecteur booléen en un vecteur d'indices :
row_to_keep = which(myData$A > 4)
Enfin, une astuce très intéressante consiste à utiliser ce type de sous-ensemble non seulement pour l'extraction, mais aussi pour l'affectation :
myData$A[myData$A > 4,] <- NA
où la colonne A
est attribué NA
(pas un nombre) où A
dépasse 4.