Dear group,

Is there a way I could avoid the sort of duplication illustrated below?
i.e., I have the same dplyr::summarise function on different group_by
arguments. So I'd like to create a single summarise function that could be
applied to both. My attempt below fails.

df <- data.frame(matrix(rnorm(40), 10, 4),
                 f1 = gl(3, 10, labels = letters[1:3]),
                 f2 = gl(3, 10, labels = letters[4:6]))


df %>%
  group_by(f1, f2) %>%
  summarise(x1m = mean(X1),
            x2m = mean(X2),
            x3m = mean(X3),
            x4m = mean(X4))

df %>%
  group_by(f1) %>%
  summarise(x1m = mean(X1),
            x2m = mean(X2),
            x3m = mean(X3),
            x4m = mean(X4))

# My fail attempt

s <- function() {
  dplyr::summarise(x1m = mean(X1),
                   x2m = mean(X2),
                   x3m = mean(X3),
                   x4m = mean(X4))
}

df %>%
  group_by(f1) %>% s
Error in s(.) : unused argument (.)

Regards,
Lars.

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to