Cela devrait être un problème simple, mais je me bats.
J'ai un vecteur de noms de variable que je veux exclure d'un bloc de données:
df <- data.frame(matrix(rexp(50), nrow = 10, ncol = 5))
names(df) <- paste0(rep("variable_", 5), 1:5)
excluded_vars <- c("variable_1", "variable_3")
J'aurais pensé qu'exclure simplement l'objet dans l'instruction select avec -
aurait fonctionné:
select(df, -excluded_vars)
Mais j'obtiens l'erreur suivante:
Erreur dans -excluded_vars: argument non valide pour l'opérateur unaire
il en va de même lorsque vous utilisez select_()
Des idées?
Vous devez utiliser la fonction one_of
:
select(df, -one_of(excluded_vars))
Voir la documentation dplyr
pour help help pour plus d’informations sur la sélection en fonction des noms de variables.
Avec select_
, vous pouvez simplement utiliser setdiff
.
select_(df, .dots = setdiff(colnames(df), excluded_vars))