首页 文章

非标准评估和特征向量

提问于
浏览
0

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

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

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

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

使用 dplyr 我想使用 vselect 变量 ab .

这不起作用,

d %>%
  select(v)

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

2 回答

  • 3

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

    d %>% select_(.dots = v)
    

    有关更多信息,请参见 help(select)vignette("nse") .

  • 2

    您还可以使用:

    d %>% select(one_of(v))
    

相关问题