I want to summarize a dataframe with dplyr, like so:
> test <-data.frame(ID = c(\"A\", \"A\", \"B\", \"B\"), val = c(1:4))
> test %>% group_by(ID
If we need to use NSE, then sym and !! can be used
test %>%
group_by(!! rlang::sym(names(.)[1])) %>%
summarise(av = mean(val))
# A tibble: 2 x 2
# ID av
#
#1 A 1.5
#2 B 3.5
We can also create a function. If we pass quoted strings, then we use sym with !! or else go for the enquo/!! route
f1 <- function(dat, grp, valueCol) {
dat %>%
group_by(!! rlang::sym(grp)) %>%
summarise(av = mean(!! rlang::sym(valueCol)))
}
f1(test, "ID", "val")
# A tibble: 2 x 2
# ID av
#
#1 A 1.5
#2 B 3.5