【发布时间】:2021-11-02 12:58:35
【问题描述】:
对于在线订单的数据,我必须确定单独订单的篮子大小。我拥有的信息在每个 order_id 的 product_number_within_order 上。例如,订单 id 123456 有 7 个变量,product_number_within_order 为 1 到 7(因此购物篮大小是 product_number_within_order 的最大值)。对于每个订单 ID,篮子大小应放在数据表中。我怎样才能最好地计算这个? order_id 不按顺序排列,这让我很难编程。现在我有以下内容,但是这需要很长时间才能运行,因此对我来说似乎不是最佳选择。
vec <- data.frame(table(unlist(data5$order_id)))
它给出了每个订单的购物篮大小(因为它计算了一个 order_id 被提及的次数)
Var1 Freq
1 24409499 2
2 37018675 1
3 49812254 1
4 72349794 1
5 121649820 2
6 123680104 3
7 156423543 11
和下面的代码来确定篮子的大小
for (i in 1:length(data5$order_id)) {
for (j in 1:length(vec$Var1))
if (data5$order_id[i] != vec$Var1[j]) {
size <- vec$Freq[j]
data5$basketsize[i] <- size
}
}
对于某些 order_id,它可以工作,但对于其他人,它是完全错误的。有谁知道如何更有效地做到这一点或错误出在哪里?
【问题讨论】:
-
如果您希望社区为您提供帮助,您应该提供数据框数据的最小可重现示例。使用
dput(data5)output 分享你的df