Déposer les colonnes du cadre de données par nom

J'ai un certain nombre de colonnes que je voudrais supprimer d'un cadre de données. Je sais que l'on peut les supprimer individuellement en utilisant quelque chose comme :

df$x <- NULL

Mais j'espérais pouvoir le faire avec moins de commandes.

De plus, je sais que je pourrais déposer des colonnes en utilisant l'indexation des entiers comme ceci :

df <- df[ -c(1, 3:6, 12) ]

Mais je crains que la position relative de mes variables ne change.

Compte tenu de la puissance de R, je me suis dit qu'il devait y avoir un meilleur moyen que de supprimer chaque colonne une par une.

Solution

Vous pouvez utiliser une simple liste de noms :


DF 
Commentaires (6)

Il y a aussi la commande subset, utile si vous savez quelles colonnes vous voulez :


df 
Commentaires (10)

Vous pouvez utiliser %in% comme ceci :

df[, !(colnames(df) %in% c("x","bar","foo"))]
Commentaires (3)