小编Lor*_*lli的帖子

调整列的元素以使 cumsum 等于 0

我在更大的数据集中有这些列(这里我只报告资产“x”,但有不同的资产,因此想法是为每个资产复制该过程):

df <- structure(list(
        asset = c("x", "x", "x", "x", "x", "x", "x", "x", "x", "x", "x")
        col1 =  c(10, 10, -22, 11, -13, 15, -7, -10, 10, -5, 3),  
        cumsum(col1) = c(10, 20, -2, 9, -4, 11, 4, -6, 4, -1, 2), 
        class = "data.frame", row.names = c(NA, -11L)
     )
Run Code Online (Sandbox Code Playgroud)

我想纠正 col1 中的负数,使 cumsum(col1) 等于

cumsum(col1) = c(10, 20, 0, 11, 0, 15, 8, 0, 10, 5, 8)
Run Code Online (Sandbox Code Playgroud)

为了得到这个结果,我需要纠正 col1 数字当且仅当负数大于前一个数字的总和。例如,-22第三个位置的 应该变为-20与前一个的 cumsum 相匹配10+10 …

r cumsum dplyr group

5
推荐指数
1
解决办法
84
查看次数

标签 统计

cumsum ×1

dplyr ×1

group ×1

r ×1