Преобразувайте рамка от релационни данни в индикаторни променливи

Имам релационна рамка с данни с 2 колони, клиенти и покупки. Бих искал рамка с данни с ред за всеки отделен клиент и колона за всеки продукт с променлива индикатор, показваща дали този клиент е закупил този продукт или не.

Пример:

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