想象一下,我有一个数据集如下
d <- data.frame(a = 1:10, b = letters[1:10], c = sample(10))
想象一下,我还有一个包含变量名的字符向量
v <- c("a", "b")
使用 dplyr 我想使用 v 到 select 变量 a & b .
dplyr
v
select
a
b
这不起作用,
d %>% select(v)
这是因为 dplyr 包使用非标准评估,并且期望传递实际变量名称而不是字符 .
对于标准评估,您需要在给定名称后使用带下划线的函数 . 在这种情况下是 select_() . 我们还需要使用 .dots 参数将向量插入到调用中 .
select_()
.dots
d %>% select_(.dots = v)
有关更多信息,请参见 help(select) 和 vignette("nse") .
help(select)
vignette("nse")
您还可以使用:
d %>% select(one_of(v))
2 回答
对于标准评估,您需要在给定名称后使用带下划线的函数 . 在这种情况下是
select_()
. 我们还需要使用.dots
参数将向量插入到调用中 .有关更多信息,请参见
help(select)
和vignette("nse")
.您还可以使用: