为什么这段代码不起作用?
mtcars %>% select_("starts_with('d')")
Error in eval(expr, envir, enclos) : could not find function "starts_with"
这是简化的例子。我试图将select_命令传递给函数。
答案 0 :(得分:2)
select()
和select_()
之间的区别在于他们对参数的非标准/标准评估。如果starts_with()
之类的函数用作select_()
的参数,则应使用代字号引用:
library(dplyr)
mtcars %>% select_(~starts_with('d'))
这产生与select
的正常使用相同的输出:
identical(mtcars %>% select_(~starts_with('d')), mtcars %>% select(starts_with('d')))
#[1] TRUE
有关更多信息,请参阅非标准评估的小插图:vignette("nse")
。