【发布时间】:2020-12-02 12:00:00
【问题描述】:
我有一个数据框,其中包含来自多个渠道的每日渠道收入。数据框如下所示:
orders_dataframe:
Order |Channel | Revenue |
1 |TV | 120 |
2 |Email | 30 |
3 |Retail | 300 |
4 |Shop1 | 50 |
5 |Shop2 | 90 |
6 |Email | 20 |
7 |Retail | 250 |
我想做的是根据预定义的比率(例如,60%/40% 的拆分)将来自零售的收入分成 Shop1 和 Shop2。例如,我希望所有收入来自“零售”的行都将 60% 归于 Shop1,将 40% 归于 Shop2。这可以通过用两个新行替换所有零售收入行来反映,如我想在下面得到的最终表中的 Order 3 和 Order 7 所示:
orders_dataframe:
Order |Channel | Revenue |
1 |TV | 120 |
2 |Email | 30 |
3 |Shop1 | 180 |
3 |Shop2 | 120 |
4 |Shop1 | 50 |
5 |Shop2 | 90 |
6 |Email | 20 |
7 |Shop1 | 150 |
7 |Shop2 | 100 |
理想情况下,由于我使用各种数据集执行此操作,我想从数据框 (split_dataframe) 中获取百分比,而不是手动分配数字 60% 和 40%。我想使用如下数据集中的数据:
split_dataframe:
Channel |Percent |
Shop1 |60% |
Shop2 |40% |
这是两个数据框的可重现示例:
orders_dataframe <- data.frame(Order = c(1,2,3,4,5,6,7),
Channel = c("TV", "Email", "Retail", "Shop1", "Shop2", "Email", "Retail"),
Revenue = c(120,30,300,50,90,20,250))
split_dataframe <- data.frame(Channel = c("Shop1", "Shop2"),
Percent = c(0.6, 0.4))
非常感谢!
【问题讨论】:
标签: r dataframe filter match aggregate