使用dplyr进行准报价和过滤

时间:2018-08-13 17:16:11

标签: r dplyr

说我有以下数据框:

df <- data.frame(a = 3:7, b = 1:5)

#   a b
# 1 3 1
# 2 4 2
# 3 5 3
# 4 6 4
# 5 7 5

我可以使用四引号在数据框中选择一列,如下所示:

MyVarName <- "b"
df %>% select(!!MyVarName)   

#   b
# 1 1
# 2 2
# 3 3
# 4 4
# 5 5

很酷的东西。现在,说我想使用准引号进行过滤,如下所示:

df %>% filter(!!MyVarName > 3)

我的目的是产生以下内容:

#   a b
# 1 6 4
# 2 7 5

就像我从df %>% filter(b > 3)那里得到一样,但是相反,我得到了

#   a b
# 1 3 1
# 2 4 2
# 3 5 3
# 4 6 4
# 5 7 5

即使添加括号(即df %>% filter((!!MyVarName) > 3))也无济于事。是否可以以类似的方式在filter中使用准引号?如果是这样,我使用的语法有何不正确?

0 个答案:

没有答案