Допустим, у меня есть таблица покупок в длинном формате. Это выглядит примерно так:
purchases = data.frame(
Item = c("Bike", "Bike", "Bike", "Bike", "Car", "Car", "Car", "Car"),
Variable = c("Age", "Age", "Price", "Price", "Age", "Age", "Price", "Price"),
Value = c("New", "Used", "Full", "Discount", "New", "Used", "Discount", "Discount")
)
Я хочу увидеть распределение значений, сгруппированных по элементам и переменным. Поэтому я могу сказать: «Из всех проданных мотоциклов было использовано 50%» или «Все автомобили были проданы со скидкой».
Идеальный результат - таблица, которая выглядит следующим образом:
Я могу получить счет в dplyr, выполнив что-то вроде этого:
purchases %>% group_by(Item, Variable, Value) %>%
summarise(Total = n())
Затем я бы разделил каждое из этих значений на соответствующие группыпросто элемента и переменной. Я могу придумать несколько длинных ответов, в которых я условно добавляю соответствующие значения в другую переменную, но я надеялся найти простой способ сделать это через dplyr. Другой способ описать это может быть выполнение вычислений на один уровень вверх по группировке.