我有一个网站上的在线购买数据集。每行代表不同的项目包装,但它不一定代表单独的订单。我想知道在一个包裹中装了多少个不同的物品。 变量 order_code 重复特定订单。
我想知道如何计算包含相同order_code的行 - >这将直接对应于每个订单中我有多少商品。
data$result <- group_by(data,order_code)
这不会返回预期的结果......
数据和最终的输出应该如下表所示:
order_code date desired output
302492016 2016-07-01
302492016 2016-07-01 2
302502016 2016-07-01
302502016 2016-07-01 2
302512016 2016-07-01
302512016 2016-07-01 2
302522016 2016-07-01 1
302532016 2016-07-01
302532016 2016-07-01 2
答案 0 :(得分:0)
使用以下示例数据:
> df
order_code date
1 302492016 2016-07-01
2 302492016 2016-07-01
3 302502016 2016-07-01
4 302502016 2016-07-01
5 302512016 2016-07-01
6 302512016 2016-07-01
7 302522016 2016-07-01
8 302532016 2016-07-01
9 302532016 2016-07-01
计算order_code的频率:
> library(plyr)
> freq <- count(df, 'order_code')
> freq
order_code freq
1 302492016 2
2 302502016 2
3 302512016 2
4 302522016 1
5 302532016 2
与原始数据框合并:
> df2 <- data.frame(merge(df,freq, by="order_code", all=TRUE))
> df2
order_code date freq
1 302492016 2016-07-01 2
2 302492016 2016-07-01 2
3 302502016 2016-07-01 2
4 302502016 2016-07-01 2
5 302512016 2016-07-01 2
6 302512016 2016-07-01 2
7 302522016 2016-07-01 1
8 302532016 2016-07-01 2
9 302532016 2016-07-01 2