How can I aggregate data with sum, mean and count for each column respectively?
我有一个名为”order_product”的数据集,如下所示:
1
2 3 4 5 6 7 8 9 10 11 |
order_id product order_sequence reorder
1 egg 1 1 1 meat 2 0 1 fruit 3 1 1 meat 4 1 2 egg 1 1 2 egg 2 1 2 fruit 3 0 3 egg 1 0 3 fruit 2 1 3 fruit 3 1 |
我将把数据聚合到一个名为”产品”的新数据框中,该数据框按产品分组。新聚合数据集的变量显示了每个产品的总频率、再订购率和平均序列。每个变量的计算如下:
1
2 3 |
frequency: product count
reorder_rate: sum of reorder/frequency mean_sequence: sum or order_sequence/frequency |
所以结果应该是这样的:
1
2 3 4 |
product frequency reorder_rate mean_sequence
egg 4 3/4 5/4 meat 2 1/2 3 fruit 4 3/4 11/4 |
有人可以在 R 中帮助我吗?我尝试了 data.table 包中的 melt() 函数,但我不知道如何编写代码。
这样的计算很容易使用 dplyr
1
2 3 4 5 6 7 8 9 10 11 12 13 14 |
library(dplyr)
df %>% # A tibble: 3 x 4 |
但是,您也可以使用 data.table
1
2 3 4 |
library(data.table)
setDT(df)[, .(frequency = .N, reorder_rate = sum(reorder)/.N, |
来源:https://www.codenong.com/57441346/