{{}}
(curly-curly)有很多应用。它称为元编程,用于编写函数。例如,考虑以下示例:
library(dplyr)
library(rlang)
mtcars %>% group_by(cyl) %>% summarise(new_mpg = mean(mpg))
# A tibble: 3 x 2
# cyl new_mpg
# <dbl> <dbl>
#1 4 26.7
#2 6 19.7
#3 8 15.1
现在,如果您要将此代码编写为传递未加引号的变量(而不是字符串)的函数,则可以{{}}
用作:
my_fun <- function(data, group_col, col, new_col) {
data %>%
group_by({{group_col}}) %>%
summarise({{new_col}} := mean({{col}}))
}
mtcars %>% my_fun(cyl, mpg, new_mpg)
# cyl new_mpg
# <dbl> <dbl>
#1 4 26.7
#2 6 19.7
#3 8 15.1
请注意,您传递的所有变量都没有引号和group-column(cyl
),正在聚合的列(mpg
),新列的名称(new_mpg
)都是动态的。这只是其中的一个用例。
要了解更多信息,请参考:
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句