【发布时间】:2018-11-27 09:31:53
【问题描述】:
请参阅下面的示例数据。
我想将季度销售数据(包括开始日期和结束日期)转换为月销售数据。
例如:
- 数据集 A-Row 1 将拆分为数据集 B-Row 1、2 和 3,分别用于 6 月、7 月和 8 月,销售将根据当月的天数按比例分配,所有其他列将一样;
- 数据集 A-Row 2 将拾取第 1 行(于 2017 年 5 月 9 日结束)中剩余的内容并形成完整的 9 月。
有没有有效的方法来执行这个,实际数据是一个 100K x 15 数据大小的 csv 文件,它将被拆分为大约 300K x 15 的新数据集以供每月分析。
样本问题数据的一些关键特征包括:
- 第一个季度销售数据的开始日期是客户加入的日期,因此可以是任何一天;
- 所有销售将按季度计算,但在 90 天、91 天或 92 天之间的不同天数,但由于客户在该季度离开,季度销售数据也可能不完整。
示例问题:
Customer.ID Country Type Sale Start..Date End.Date Days
1 1 US Commercial 91 7/06/2017 5/09/2017 91
2 1 US Commerical 92 6/09/2017 6/12/2017 92
3 2 US Casual 25 10/07/2017 3/08/2017 25
4 3 UK Commercial 64 7/06/2017 9/08/2017 64
示例答案:
Customer.ID Country Type Sale Start.Date End.Date Days
1 1 US Commercial 24 7/06/2017 30/06/2017 24
2 1 US Commercial 31 1/07/2017 31/07/2017 31
3 1 US Commercial 31 1/08/2017 31/08/2017 31
4 1 US Commercial 30 1/09/2017 30/09/2017 30
5 1 US Commercial 31 1/10/2017 31/10/2017 31
6 1 US Commercial 30 1/11/2017 30/11/2017 30
7 1 US Commercial 6 1/12/2017 6/12/2017 6
8 2 US Casual 22 10/07/2017 31/07/2017 22
9 2 US Casual 3 1/08/2017 3/08/2017 3
10 3 UK Commercial 24 7/06/2017 30/06/2017 24
11 3 UK Commercial 31 1/07/2017 31/07/2017 31
12 3 UK Commercial 9 1/08/2017 9/08/2017 9
【问题讨论】:
-
欢迎来到 StackOverflow!请阅读有关how to ask a good question 的信息以及如何提供reproducible example。这将使其他人更容易帮助您。
-
感谢 CIAndrews,但我认为这不是同一个问题。我确实在网络上进行了搜索,包括堆栈溢出,唯一接近的答案是由 excel vba 完成的,但考虑到实际大小,它总是最终被冻结。
-
在您的示例答案中,扩展是按国家/地区按类型完成的?客户 ID 应该是最大 3 是否正确?
-
您好,客户 ID 在所有国家和类型中都是唯一的,但每个客户 ID 可能是多行数据,因此是季度数据,并且客户 ID 不是最大为 3,实际上是 100s of 数千实际数据中的客户 ID 差异。 Country 和 Type 都可以作为扩展,它们在数据中显示的主要目的是为了分析阶段。
标签: r