Take the following example.
library(dplyr)
temp <- data.frame(lapply(1:3, function(i) rnorm(5, 0, 1)))
names(temp) <- paste0("X", 1:3)
temp_each <-
temp %>%
mutate_each(funs(mean, median))
Examining the names of temp_each, we see that
> names(temp_each)
[1] "X1" "X2" "X3" "X1_mean" "X2_mean" "X3_mean" "X1_median" "X2_median" "X3_median"
that is, the final columns are in groups of three, always ordered X1, X2, X3 + the function applied.
However, I would like it to look like this
[1] "X1" "X1_mean" "X1_median" "X2" "X2_mean" "X2_median" "X3" "X3_mean" "X3_median"
Does anyone know how to implement this, preferably using dplyr, for a data frame with many many columns and arbitrary column names?