У меня большой грязный набор данных, но я хочу сделать sh прямолинейную вещь. По сути, я хочу заполнить таблицу на основе каждой комбинации двух столбцов и сложить третий столбец.
В качестве гипотетического примера, скажем, каждое наблюдение имеет название компании (Wendys, BK, McDonalds), food_option (бургеры, картофель фри, морозный) и total_spending (в $). Я хотел бы сделать выпивку 9х3 с компанией, едой и итогом в виде суммы каждого наблюдения. Вот мой код:
df_table <- df %>%
group_by(company_name, food_option) %>%
summarize(total= sum(total_spending))
company_name food_option total
<chr> <chr> <dbl>
1 Wendys Burgers 757
2 Wendys Fries 140
3 Wendys Frosty 98
4 McDonalds Burgers 1044
5 McDonalds Fries 148
6 BK Burgers 669
7 BK Fries 38
Проблема в том, что McDonalds имеет нулевые наблюдения с "Frosty" в качестве food_option. Следовательно, я получаю неполную таблицу. Я хотел бы заполнить это строкой, которая показывает:
8 McDonalds Frosty 0
9 BK Frosty 0
Я знаю, что могу добавить строки вручную, но фактический набор данных имеет более ста комбинаций, поэтому он будет утомительным и сложным. Кроме того, я постоянно изменяю вышестоящие данные и хочу, чтобы код автоматически заполнялся правильно.
Большое спасибо всем, кто может помочь. Этот форум действительно был находкой, очень ценю всех вас.