【发布时间】:2020-01-22 15:12:24
【问题描述】:
假设我有一个包含订单日期、用户 ID 和商品 ID 的大型数据框。
order_id order_date user_id item_id
1 1 2016-06-22 30822 643
2 2 2016-06-22 30822 337
3 3 2016-06-22 30823 270
4 4 2016-06-22 30823 142
5 5 2016-06-22 30823 561
6 6 2016-06-22 30823 561
7 7 2016-06-22 30823 72
8 8 2016-06-22 30823 106
9 9 2016-06-22 30823 195
10 10 2016-06-22 30823 195
我想要做的是计算同一用户在同一天下了多少订单,以及同一用户下了多少同一商品的订单,并在第四列和第五列中显示这两个值。所以结果应该是这样的:
order_id order_date user_id item_id same_day same_item
1 1 2016-06-22 30822 643 2 1
2 2 2016-06-22 30822 337 2 1
3 3 2016-06-22 30823 270 8 1
4 4 2016-06-22 30823 142 8 1
5 5 2016-06-22 30823 561 8 2
6 6 2016-06-22 30823 561 8 2
7 7 2016-06-22 30823 72 8 1
8 8 2016-06-22 30823 106 8 1
9 9 2016-06-22 30823 195 8 2
10 10 2016-06-22 30823 195 8 2
或者,显示项目是否多次订购的二进制变量也可以完成这项工作。我知道可以使用sum() 轻松计算每一行:
> sum(df$order_date=="2016-06-22" & df$user_id==30823)
[1] 8
> sum(df$item_id==561 & df$user_id==30823)
[1] 2
但我宁愿让它自动运行,而不是手动运行数千个条目。我的想法严重不足,非常感谢您的帮助!
【问题讨论】:
标签: r loops dataframe count automation