Предположим, у меня есть этот фрейм данных df
df <- data.frame("City" = c("Boston", "Boston","Boston", "Boston","Boston", "Boston",
"Boston", "Boston", "Boston", "New York", "New York", "New York" ),
"Store_ID" = c("00002", "00002", "00002", "00002", "00004", "00004",
"00004", "00004", "00004", "00011", "00011", "00011"),
"Customer_ID" = c("10001", "10001", "10001", "23847", "17823", "17823",
"17823", "17823", "17823", "24232", "24232", "27381"),
"Product_ID" = c ("00013", "00013", "00058", "00013", "00899", "00847",
"00065", "00065", "00065", "00096", "00085", "00175"),
"Payment" = c("Cash", "Cash", "Cash", "Card", "Card", "Card", "Card",
"Card", "Card", "Card", "Card", "Cash"))
Допустим, я хочу знать, сколько продуктов было продано в каждом городе; тогда я бы использовал этот код
df2 <- df %>% group_by(City) %>% summarise(Quantity = (n))
Или, если я хочу узнать количество продуктов, продаваемых в каждом магазине, я могу расширить предыдущий код, например:
df2 <- df %>% group_by(City, Store_ID) %>% summarise(Quantity = (n))
Однако это дополнительно разбивает фрейм данных, и теперь я не вижу общего количества продуктов, проданных в каждом городе. Можно ли создать новый фрейм данных, который содержит количество различных групп, но сгруппирован только по более всеобъемлющей переменной, такой как Город или Магазин.
Пример вывода, который я ищу только для Store00002, будет выглядеть так:
Store Total_Sales Customer10001_purchases Customer23847_purchases Cash% (ratio of items paid in cash)
00002 4 3 1 0.75
Возможно ли сделать это через dplyr? Я также открыт для любых других предложений. Очень ценю помощь!