У меня есть R-фрейм данных с такой структурой (пример Dummy):
df
A B C D
1 a 3 5
1 a 5 3
1 b 2 8
2 a 4 7
2 a 6 5
2 b 4 3
...
«A», «B», «C» и «D» - заголовки столбцов.
Я хочу изменить эту структуру данных, чтобы получить среднее (среднее) для "C" и "D" по каждому уровню "A" и "B".
Итак, конечный продукт, который я хочу получить:
new_df
A BaC BbC BaD BbD
1 4 2 4 8
2 5 4 6 3
Мне удалось сделать это очень грубо:
spread_df_C <- spread(df, B, C)
aggregated_df_C <- aggregate(spread_df$a, list(spread_df$A), mean)
spread_df_D <- spread(df, B, D)
aggregated_df_D <- aggregate(spread_df$a, list(spread_df$A), mean)
new_df <- merge(aggregated_df_C, aggregated_df_D, by=c("A", "A")
Это дало бы мне окончательный результат.продукт в конце концов, но я кропотливо вычисляю среднее значение для каждого из уровней.Мне нужно сделать это на нескольких уровнях, и должен быть более элегантный способ его выполнения.
Эксперты, помогите пожалуйста