У меня есть фрейм данных, который я хочу сгруппировать по двум переменным, а затем суммировать итоговые и средние значения.
Я пробовал это на своих данных, и это правильно.
df %>%
group_by(date, group) %>%
summarise(
weight = sum(ind_weigh) ,
total_usage = sum(total_usage_min) ,
Avg_usage = total_usage / weight) %>%
ungroup()
Возвращает этот фрейм данных:
df <- tibble::tribble(
~date, ~group, ~weight, ~total_usage, ~Avg_usage,
20190201, 0, 450762, 67184943, 149,
20190201, 1, 2788303, 385115718, 138,
20190202, 0, 483959, 60677765, 125,
20190202, 1, 2413699, 311226351, 129,
20190203, 0, 471189, 59921762, 127,
20190203, 1, 2143811, 277425186, 129,
20190204, 0, 531020, 83695977, 158,
20190204, 1, 2640087, 403200829, 153
)
Мне интересно, как я могу добавить еще одну переменную в мой скрипт, чтобы получить также avg_usage_total (как для группы 0, так и для группы 1).
Ожидаемый результат:
ex, первый ряд -> (67184943 / (450762 + 2788303) = 20,7
date group rech total_usage Avg_usage Avg_usage_total
20190201 0 450762 67184943 149 20.7
20190201 1 2788303 385115718 138 118.9