说我有以下数据框:
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
中使用准引号?如果是这样,我使用的语法有何不正确?