Filtre à bloc de données par le personnage de nom de colonne (en dplyr)

J'ai un bloc de données et souhaitez filtrer dans un de deux façons, soit par la colonne "ce" ou la colonne "que". Je voudrais être en mesure de se référer à la colonne nom de la variable. Comment (dans dplyr, si cela fait une différence) dois-je consulter un nom de colonne par une variable?

library(dplyr)
df <- data.frame(this = c(1, 2, 2), that = c(1, 1, 2))
df
#   this that
# 1    1    1
# 2    2    1
# 3    2    2
df %>% filter(this == 1)
#   this that
# 1    1    1

Mais dire que je veux utiliser la variable column de tenir "ceci" ou "cela", et d'un filtre à quelle que soit la valeur de column est. Les deux as.symbol et get travail dans d'autres contextes, mais pas cette:

column <- "this"
df %>% filter(as.symbol(column) == 1)
# [1] this that
# <0 rows> (or 0-length row.names)
df %>% filter(get(column) == 1)
# Error in get("this") : object 'this' not found

Comment puis-je tourner la valeur de column dans un nom de colonne?

  • Pourquoi voulez-vous faire cela? Essayer de paramétrer le choix de la variable?
  • J'ai un jeu de données avec deux types de choses, et des colonnes différentes pour chaque. Je souhaite aborder les choses de cette façon parce que je suis une utilisation Brillante de faire une visualisation interactive, et je veux laisser les gens choisir le type de chose à regarder, mais alors utiliser le même code pour extraire les données, en passant le nom de la colonne en fonction de leur choix.
  • Près de posté ma question et trouvé ceci 🙂