Vous pouvez également travailler avec un soi-disant vecteur booléen, alias logical
:
row_to_keep = c(TRUE, FALSE, TRUE, FALSE, TRUE, FALSE, TRUE)
myData = myData[row_to_keep,]
Notez que l' !
opérateur agit comme un NOT, c'est !TRUE == FALSE
-à- dire :
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 lorsqu'une valeur de 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 est que vous pouvez 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ée NA
(pas un nombre) où A
dépasse 4.