【发布时间】:2013-10-31 11:31:25
【问题描述】:
前段时间我问了一个关于创建购物篮数据的问题。现在我想创建一个类似的 data.frame,但基于第三个变量。不幸的是,我在尝试时遇到了问题。上一个问题:Effecient way to create market basket matrix in R
@shadow 和 @SimonO101 给了我很好的答案,但我无法正确更改他们的答案。我有以下数据:
Customer <- as.factor(c(1000001,1000001,1000001,1000001,1000001,1000001,1000002,1000002,1000002,1000003,1000003,1000003))
Product <- as.factor(c(100001,100001,100001,100004,100004,100002,100003,100003,100003,100002,100003,100008))
input <- data.frame(Customer,Product)
我现在可以通过以下方式创建列联表:
input_df <- as.data.frame.matrix(table(input))
但是我有第三个(数字)变量,我想在表中作为输出。
Number <- c(3,1,-4,1,1,1,1,1,1,1,1,1)
input <- data.frame(Customer,Product,Number)
现在代码(当然,现在有 3 个变量)不再起作用了。我正在寻找的结果具有唯一的客户作为行名和唯一的产品作为列名。并且有 Number 作为值(如果不存在,则为 0),该数字可以通过以下方式计算:
input_agg <- aggregate( Number ~ Customer + Product, data = input, sum)
希望我的问题很清楚,如果有不清楚的地方请评论。
【问题讨论】:
-
+1 是另一个可重现的例子。
-
你能成功完成
aggregate这一步吗?
标签: r