确定与特定订单 ID 相关的列中的最大值
Determine maximum value in column related to specific order id
对于在线订单的数据,我必须确定单独订单的篮子大小。我掌握的信息在 product_number_within_order per order_id 上。例如,对于订单 ID 123456,有 7 个变量 product_number_within_order 1 到 7(因此篮子大小是最大值 product_number_within_order)。对于每个订单 ID,篮子大小应该放在数据 table 中。我怎样才能最好地计算这个? 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 来说它有效,但对于其他人来说它是完全错误的。有谁知道如何更有效地做到这一点或错误在哪里?
假设data5
是一个包含变量order_id
的数据框,你可以简单地:
library(dplyr)
data5 %>%
group_by(order_id) %>%
summarise(size=n())
例如,这里我制作了一个示例数据集并应用了上述函数:
> data5 = tibble(order_id = sample(1:5, size=15, replace=T), other_var = 1:15)
> data5
# A tibble: 15 × 2
order_id other_var
<int> <int>
1 3 1
2 2 2
3 2 3
4 4 4
5 2 5
6 1 6
7 3 7
8 3 8
9 5 9
10 1 10
11 2 11
12 3 12
13 4 13
14 5 14
15 3 15
> data5 %>%
group_by(order_id) %>%
summarise(size=n())
# A tibble: 5 × 2
order_id size
<int> <int>
1 1 2
2 2 4
3 3 5
4 4 2
5 5 2
对于在线订单的数据,我必须确定单独订单的篮子大小。我掌握的信息在 product_number_within_order per order_id 上。例如,对于订单 ID 123456,有 7 个变量 product_number_within_order 1 到 7(因此篮子大小是最大值 product_number_within_order)。对于每个订单 ID,篮子大小应该放在数据 table 中。我怎样才能最好地计算这个? 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 来说它有效,但对于其他人来说它是完全错误的。有谁知道如何更有效地做到这一点或错误在哪里?
假设data5
是一个包含变量order_id
的数据框,你可以简单地:
library(dplyr)
data5 %>%
group_by(order_id) %>%
summarise(size=n())
例如,这里我制作了一个示例数据集并应用了上述函数:
> data5 = tibble(order_id = sample(1:5, size=15, replace=T), other_var = 1:15)
> data5
# A tibble: 15 × 2
order_id other_var
<int> <int>
1 3 1
2 2 2
3 2 3
4 4 4
5 2 5
6 1 6
7 3 7
8 3 8
9 5 9
10 1 10
11 2 11
12 3 12
13 4 13
14 5 14
15 3 15
> data5 %>%
group_by(order_id) %>%
summarise(size=n())
# A tibble: 5 × 2
order_id size
<int> <int>
1 1 2
2 2 4
3 3 5
4 4 2
5 5 2