如何解决在 R 中取消引用函数内部的参数
我无法弄清楚为什么我的函数中的 bang-bang 运算符没有取消引用我的 grp
参数。任何帮助将不胜感激!
library(dplyr)
test_func <- function(dat,grp){
dat %>%
group_by(!!grp) %>%
summarise(N = n())
}
test_func(dat = iris,grp = "Species")
解决方法
如果我们传递一个字符串,则转换为 sym
bol 并计算 (!!
)
test_func <- function(dat,grp){
dat %>%
group_by(!! rlang::ensym(grp)) %>%
summarise(N = n(),.groups = 'drop')
}
-测试
test_func(dat = iris,grp = "Species")
# A tibble: 3 x 2
# Species N
#* <fct> <int>
#1 setosa 50
#2 versicolor 50
#3 virginica 50
或者另一种选择是使用 across
test_func <- function(dat,grp){
dat %>%
group_by(across(all_of(grp))) %>%
summarise(N = n(),.groups = 'drop')
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。