, если вы заинтересованы в решении tidyverse
...
library(tidyverse)
foo <- tribble(~Col1, ~Col2, ~Col3, ~Col4,
1, 6, 10, 60,
2, 7, 20, 70,
3, 8, 30, 80,
4, 9, 40, 90,
5, 10, 50, 100)
foo %>%
gather(Col, Value) %>%
group_by(Col) %>%
summarise(Mean = mean(Value), Minimum = min(Value))
#> # A tibble: 4 x 3
#> Col Mean Minimum
#> <chr> <dbl> <dbl>
#> 1 Col1 3 1
#> 2 Col2 8 6
#> 3 Col3 30 10
#> 4 Col4 80 60
Редактировать Если вы хотите получить результирующий фрейм данных точно так, как вы указали в своем вопросе, то:
foo %>%
gather(Col, Value) %>%
group_by(Col) %>%
summarise(Mean = mean(Value),
Minimum = min(Value)) %>%
gather(Func, Value, 2:3) %>%
spread(Col, Value) %>%
select(Func, Col1, Col3)
# A tibble: 2 x 3
# Func Col1 Col3
# <chr> <dbl> <dbl>
#1 Mean 3 30
#2 Minimum 1 10