dplyr filter_不返回数据

时间:2018-04-13 17:17:21

标签: r dplyr

我有一个“d”数据框,我想动态过滤。我想过滤“g”列来观察“C”。知道怎么让它起作用吗?

d =data.frame(g = c("C","A"))
library(dplyr)
 groups= c("g")
 filter=c("C","A")
 i=1
 d %>% dplyr::filter_(paste0( groups[i],"==",filter[i]))

1 个答案:

答案 0 :(得分:0)

我们可以使用sym转换为符号并使用!!

进行评估
library(dplyr)
d %>% 
  filter(!! rlang::sym(groups) == filter[i])
#  g
#1 C

如果我们传递表达式,那么使用quotequo

会更容易
g1 <- quo(g == "C")
d %>%
  filter(!! g1)
#  g
#1 C