У меня есть фрейм данных с более чем 190 000 строк, что-то вроде этого:
library(tibble)
mydf <- tribble(~col1, ~col2, ~col3, ~col4, ~col5,
"A", 16, 45, 53, 35,
"A", 17, 12, 54, 12,
"A", 19, 12, 54, 35,
"B", 10, 87, 55, 22,
"B", 10, 87, 55, 22,
"B", 12, 23, 12, 67)
Есть повторяющиеся итерации col1
; некоторые имеют одинаковые значения по столбцам, другие имеют разные значения по столбцам, как показано в примере кадра данных.
Для каждого повторного уровня в col1
я хочу объединить эти значения в одну строку, показывающую среднее из всех рядов. Я до сих пор пользуюсь этим ответом , однако, это оставляет меня со всеми различными строками:
mydf %>% group_by(col1) %>%
mutate_each(funs(mean), -(1)) %>%
distinct()
# A tibble: 5 x 5
# Groups: col1 [2]
col1 col2 col3 col4 col5
<chr> <dbl> <dbl> <dbl> <dbl>
1 A 16 23 53.7 27.3
2 A 17 23 53.7 27.3
3 A 19 23 53.7 27.3
4 B 10 65.7 40.7 37
5 B 12 65.7 40.7 37
Что мне действительно нужно, так это одна строка для A
, B
, et c, показывая средние значения.