Преобразование реляционного фрейма данных в индикаторные переменные

У меня есть реляционный фрейм данных с двумя столбцами, клиентами и покупками. Мне нужен фрейм данных со строкой для каждого отдельного клиента и столбцом для каждого продукта с переменной индикаторов, показывающей, купил ли этот клиент этот продукт.

Пример:

df <- data.frame(customer=c("A", "A", "B", "B"), purchase = c("Milk", "Eggs", "Juice", "Milk"))
  customer purchase
1        A     Milk
2        A     Eggs
3        B    Juice
4        B     Milk

Я хочу:

  customer Milk Eggs Juice
1        A    1    1     0
2        B    1    0     1

person Katom    schedule 18.12.2015    source источник
comment
Просто используйте table(df).   -  person A5C1D2H2I1M1N2O1R2T1    schedule 18.12.2015
comment
Спасибо! Думаю, это все, что мне было нужно   -  person Katom    schedule 18.12.2015
comment
Ответ на связанный вопрос показывает, что делать, когда комбинаций больше одной, что дает вам фактический набор переменных индикатора, а не табличные результаты.   -  person A5C1D2H2I1M1N2O1R2T1    schedule 18.12.2015


Ответы (1)


Мы можем использовать

library(reshape2)
dcast(df, customer~purchase, length, value.var='purchase')
#    customer Eggs Juice Milk
#1        A    1     0    1
#2        B    0     1    1
person akrun    schedule 18.12.2015