Мы можем сделать это в цикле с именем столбца в виде строки, затем преобразовать его в symbol
, вычислить (!!
) и получить mean
library(tidyverse)
c("revenue", "costs") %>%
map(~ datagroup %>%
group_by(treat) %>%
summarise(n = n(),
!! str_c("mean_", .x) := mean(!! rlang::sym(.x)), # convert to symbol
!! str_c("std_error_", .x) := sd(!! rlang::sym(.x)) / sqrt(n)))
Мы также можем сделать это с summarise_at
c("revenue", "costs") %>%
map(~ datagroup %>%
group_by(treat) %>%
group_by(n = n(), add = TRUE) %>%
summarise_at(vars(.x),
list(mean = ~ mean(.x),
std_error = ~ sd(.x)/sqrt(first(n)))))
Выход будет list
из data.frame
s