I see the answers on this website, but it can not solve my problem.
What I want is that use dynamic variable names both on LHS and RHS within summarize
.
这是一个简单的示例,显示我尝试过的内容:
why I use paste0('carb')
not use carb
directly is that on the position(paste0('carb')
) is a dynamic variable like this paste0('temp', n)
and n
is a series of numbers in my real situation.
library(dplyr)
sumay1 <- mtcars %>% group_by(cyl) %>%
summarise(!!paste0('carb', 100) := mean(paste0('carb'), na.rm = T))
sumay2 <- mtcars %>% group_by(cyl) %>%
summarise(!!paste0('carb', 100) := mean(sym('carb'), na.rm = T))
sumay3 <- mtcars %>% group_by(cyl) %>%
summarise(!!paste0('carb', 100) := mean({{paste0('carb')}}, na.rm = T))
In the second case, we need to evaluate (
!!
) thesym
bolThe
{{}}
is mainly used within a function where we pass unquoted arguments and it is equivalent toenquo
+!!