【发布时间】:2020-05-05 12:12:51
【问题描述】:
我有一个如下的数据框
cust start-dt end-dt item item_type sales cost trans-dat
A 07-01-2019 07-01-2020 AA xxxxxxxxx 1500 1400 08-01-2019
A 07-01-2019 07-01-2020 AA xxxxxxxxx 2000 1600 09-01-2019
A 07-01-2019 07-01-2020 AA xxxxxxxxx 2500 1000 07-12-2019
A 07-01-2019 07-01-2020 AA xxxxxxxxx 1600 1300 05-01-2020
A 07-01-2019 07-01-2020 AA xxxxxxxxx 2400 1700 02-01-2020
A 07-01-2019 07-01-2020 AA xxxxxxxxx 2200 1300 04-01-2020
我需要转换为按年计算的数据,如下所示。 基于客户和他们每年购买的物品
cust start-dt end-dt item item_type year sales cost
A 07-01-2019 07-01-2020 AA xxxxxxxxx 2019 6000 4000
A 07-01-2019 07-01-2020 AA xxxxxxxxx 2020 6200 4300
我尝试了熔化和铸造,但熔化不会创建新的列/行。
这个数据只是一个例子。我有多个客户和每个客户的多个项目,每个客户的开始和结束也不同。
请指导我如何解决这个问题。
【问题讨论】:
-
year列是start-dt、end-dt或trans-dat的年份吗?您想总结sales和cost列吗?通过对它们求和? -
年份列是 start-dt 和 end-dt 之间的年份。将其视为客户的会员资格。但是销售额和成本是根据交易日期的交易日期相加的。 trans-dt 总是在 start-dt 和 end-dt 之间。
标签: r