R 创建包含多个对象和每个对象的多个观察值的摘要数据集
我有一个来自当地商店的报告数据集,其中每一行都有客户ID、购买日期和每次购买的总价值。 我想创建一个新的绘图,其中对于每个客户ID,我都有上个月的所有购买,甚至只是在我选择的日期范围内的样本购买。 主要问题是,某些客户可能每月购买一次,而其他客户可能每天都会来,因此每个时段的观察次数可能会有所不同 我曾尝试将我的数据集分为一个特定的时间范围,但要么我选择一个特定的日期,然后我只得到所有客户的一小部分,要么我选择一个范围,并获得特定客户的多个观察结果。 (在这种情况下,我不介意得到最早的观察结果) 一个重要的提示:我知道如何创建for循环来解决这个问题,但是由于数据集超过400万个观测值,因此不实用,因为它需要非常长的时间才能运行 数据集外观的一个基本示例:R 创建包含多个对象和每个对象的多个观察值的摘要数据集,r,R,我有一个来自当地商店的报告数据集,其中每一行都有客户ID、购买日期和每次购买的总价值。 我想创建一个新的绘图,其中对于每个客户ID,我都有上个月的所有购买,甚至只是在我选择的日期范围内的样本购买。 主要问题是,某些客户可能每月购买一次,而其他客户可能每天都会来,因此每个时段的观察次数可能会有所不同 我曾尝试将我的数据集分为一个特定的时间范围,但要么我选择一个特定的日期,然后我只得到所有客户的一小部分,要么我选择一个范围,并获得特定客户的多个观察结果。 (在这种情况下,我不介意得到最早的观察结果)
ID Date Sum
1 1 1 234
2 1 2 45
3 1 3 1
4 2 4 223
5 3 5 546
6 4 6 12
7 2 1 20
8 4 3 30
9 6 2 3
10 3 5 45
11 7 6 456
12 3 7 65
13 8 8 234
14 1 9 45
15 3 2 1
16 4 3 223
17 6 6 546
18 3 4 12
19 8 7 20
20 9 5 30
21 11 6 3
22 12 6 45
23 14 9 456
24 15 10 65
....
新的数据集看起来像这样:
ID 1Date 1Sum 2Date 2Sum 3Date 3Sum
1 1 234 2 45 3 1
2 1 20 4 223 NA NA
3 2 1 5 546 5 45
谢谢你的帮助 如果得到
dplyr
和tidyr
library(dplyr)
library(tidyr)
dd %>% group_by(ID) %>% mutate(seq=1:n()) %>%
pivot_wider("ID", names_from="seq", values_from = c("Date","Sum"))
其中,
dd
是上面的示例数据框。那么这个示例输入的期望结果是什么?你到底在哪里被卡住了?请将所需的结果添加到问题本身,以便正确格式化,而不是添加到注释中。@MrFlick这更清楚吗?我非常感谢你的帮助