我们正在处理一个大型订单级数据集,我们尝试将其引入客户级。 有一个名为Hoofdrubriek的类别变量,它指示所购买产品的主要类别(有7个等级)。现在,对于每个客户,我们希望将Hoofdrubriek的可能值作为列,并将在该主要类别(该客户的)中购买的时间作为值。
使用以下代码:
hoofdrubriek_per_client <- data %>%
group_by(klantnr) %>%
mutate(Count = n()) %>%
group_by(hoofdrubriek = paste0("Hoofdrubriek_", hoofdrubriek), add = TRUE) %>%
summarise(Count = first(Count), n1 = 1) %>%
spread(hoofdrubriek, n1, fill = 0)
我们成功获得以下结果,如果客户从未从该类别购买过商品,则显示0;如果客户从未购买过,则显示1。
我们现在想要的是,这些值(0和1)更改为客户从该类别购买的实际次数。 我试图将“ n1 = 1”更改为“ n1 = Count”,如下所示:
hoofdrubriek_per_client <- data %>%
group_by(klantnr) %>%
mutate(Count = n()) %>%
group_by(hoofdrubriek = paste0("Hoofdrubriek_", hoofdrubriek), add = TRUE) %>%
summarise(Count = first(Count), **n1 = Count**) %>%
spread(hoofdrubriek, n1, fill = 0)
但是现在1改变的是该客户的总频率,而不是该特定主要类别的时间。我们应该怎么做?
非常感谢!