如何解决如何在R中使用{{}}从函数参数打印变量名?
我是R的新手,并试图了解功能编程和{{}}
的使用。
我无法从没有print
的参数中找出如何仅variable_name
的名称!!,enquos
我尝试了下面的代码,但是没有按预期工作:
summarise_min <- function(data,var_min,var_group) {
print({{var_min}})
print(glue("test_{{var_min}}"))
}
summarise_min(mtcars,mpg,cyl)
已经查看了来自https://dplyr.tidyverse.org/articles/programming.html的一些示例,但是其实现主要是在summarise / group
函数中进行的:
my_summarise5 <- function(data,mean_var,sd_var) {
data %>%
summarise(
"mean_{{mean_var}}" := mean({{ mean_var }}),"sd_{{sd_var}}" := mean({{ sd_var }})
)
}
my_summarise5(mtcars,cyl)
我试图避免使用!!,enquo,quo_name
,因为它们非常令人困惑。
是否仅通过使用{{}}
就无法解决问题,而且它们仅限于汇总功能吗?
解决方法
{{
仅在整洁的数据屏蔽函数中起作用。 print()
和glue()
不是这样的功能。
您可以执行print(enquo(var))
。这(1)简化了var
并阻止对其进行求值; (2)打印不正确的表达式。
您还可以通过包装以下模式来创建自己的函数以打印变量:
print_arg <- function(arg) print(enquo(arg))
由于它使用整洁的eval运算符enquo()
,因此它自动支持{{
。您可以这样称呼它:
print_arg({{ some_arg }})
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。