【发布时间】:2019-04-24 03:36:41
【问题描述】:
我正在尝试在我的数据集中创建新变量,这些变量是基于其他变量(使用 group by)重新启动的累积总数......我希望这些成为数据集中的新列,这是我正在努力解决的部分...
使用下面的数据,我想为每个 Product 和 Product_Cat 分组创建累积销售和利润列。
下面的代码部分给了我我需要的东西,但变量不是新变量,而是覆盖现有的销售/利润......我哪里错了?我想这很简单,没有发现任何东西。
注意:我使用的是 lapply,因为我的真实数据集有 40 多个变量,我需要为其创建计算。
DT <- setDT(Data)[,lapply(.SD, cumsum), by = .(Product,Product_Cat) ]
数据举例:
Product <- c('A','A','A','B','B','B','C','C','C')
Product_Cat <- c('S1','S1','S2','C1','C1','C1','D1','E1','F1')
Sale <- c(10,15,5,20,15,10,5,5,5)
Profit <- c(2,4,2,6,8,2,4,6,8)
Sale_Cum <- c(10,25,5,20,35,45,5,5,5)
Profit_Cum <- c(2,6,2,6,14,16,4,6,8)
Data <- data.frame(Product,Product_Cat,Sale,Profit)
Desired_Data <- data.frame(Product,Product_Cat,Sale,Profit,Sale_Cum,Profit_Cum)
【问题讨论】:
-
我只想说,这个标题的节奏让我很开心
标签: r data.table lapply cumsum cumulative-sum