给定以下数据框:
df <- data.frame(a=c(NA,1,2), b=c(3,4,5))
我可以在
select
中将列名称作为字符串传递:
> df %>% select("a")
a
1 NA
2 1
3 2
或者我可以使用带有
select
的符号名称。这样也好:
> df %>% select(a)
a
1 NA
2 1
3 2
pull
也接受两者:
> df %>% pull("a")
[1] NA 1 2
> df %>% pull(a)
[1] NA 1 2
但是我不能将字符串与
filter
: 一起使用
> df %>% filter("a"==1)
[1] a b
<0 rows> (or 0-length row.names)
仅象征性名称:
> df %>% filter(a==1)
a b
1 1 4
为什么它适用于
select
而不适用于 filter
?
不应该保持一致吗?
你可以使用rlang
df %>%
filter(!!rlang::sym('a') == 1)