非标准评估和特征向量

时间:2016-01-14 21:33:22

标签: r dplyr

想象一下,我有一个数据集如下

d <- data.frame(a = 1:10, b = letters[1:10], c = sample(10))

想象一下,我还有一个包含变量名称的字符向量

v <- c("a", "b")

使用dplyr我想将v用于select变量a&amp; b

这不起作用,

d %>%
  select(v)

这是因为dplyr包使用非标准评估,并且期望传递实际变量名称而不是字符。

2 个答案:

答案 0 :(得分:3)

对于标准评估,您需要在给定名称后使用带下划线的函数。在这种情况下是select_()。我们还需要使用.dots参数将您的向量插入到调用中。

d %>% select_(.dots = v)

有关详情,请参阅help(select)vignette("nse")

答案 1 :(得分:2)

您也可以使用:

d %>% select(one_of(v))