【发布时间】:2021-10-07 08:51:10
【问题描述】:
我正在编写一个函数,我提供一个变量名作为符号。在函数的不同步骤中,我想将变量名用作字符串。根据文档,rlang::as_string“将符号转换为字符串。”
这是一个基本示例。这个函数返回一个标题为mean的小标题。
find_mean <- function(varname){
tibble(mean = mean(pull(mtcars, {{varname}})))
> find_mean(qsec)
# A tibble: 1 × 1
mean
<dbl>
1 17.8
我想添加另一列,变量名称为字符串,如下所示:
# A tibble: 1 × 2
mean variable
<dbl> <chr>
1 17.8 qsec
我认为这会起作用。
find_mean <- function(varname){
tibble(mean = mean(pull(mtcars, {{varname}})),
variable = rlang::as_string({{varname}}))
}
但它返回此错误。
> find_mean(qsec)
Error in ~qsec : object 'qsec' not found
我知道我在 rlang 的非标准评估规则方面犯了一些基本错误,但谷歌搜索并没有帮助我弄清楚这一点。
【问题讨论】: