将关系数据框转换为指示变量

Convert a relational data frame into indicator variables

我有一个包含 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

我们可以使用

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