【发布时间】:2019-01-18 22:33:49
【问题描述】:
假设我有一个函数,它使用非标准评估 (NSE) 接收数据帧和来自该数据帧的不同数量的变量。有没有比选择()这些变量并计算列数更快/更直接的方法来计算提供的变量的数量?
# Works but seems non-ideal
nvar <- function(df, vars) {
vars_en <- rlang::enquo(vars)
df_sub <- dplyr::select(df, !!vars_en)
ncol(df_sub)
}
nvar(mtcars, mpg:hp)
#> 4
【问题讨论】:
-
我很困惑。为什么
length(vars)不够用? -
@MauritsEvers 你无法评估
nvar(mtcars, mpg:hp)例如 -
@CPak 对,我现在明白了。谢谢。
标签: r dplyr tidyverse rlang tidyeval