减去行然后求和值
Subtract rows then sum values
我有这个数据框,我想在其中执行一些计算。
aa = c (1,3,1,0,0,1,6,1,14,3,0)
bb = c (0,0,5,0,0,1,6,0,2,15,1)
ee = rbind( aa,bb)
df = as.data.frame (ee)
首先,我想从 aa 行的第一个值中减去 bb 行中的第一个值 ... 1 - 0 ... 然后将结果添加到 aa 行中的第二个值 ... 1 + 3 = 4 ... 然后是 4 - 0 ... 然后是 4 + 1 = 5 等等 ...
期望的结果是:
cc = c (1,4,5,0,0,1,6,1,15,16,1)
ff = rbind( cc,bb)
df1 = as.data.frame(ff)
非常感谢任何想法!
您想计算累计和的差值:
cc <- cumsum(aa) - cumsum(c(0, bb[-length(bb)]))
我在开头加了一个0,去掉了bb的最后一个元素。因为你想在第 i 个元素减去第 i 个 bb
之前的结果
我测试了一下:
aa = c (1,3,1,0,0,1,6,1,14,3,0)
bb = c (0,0,5,0,0,1,6,0,2,15,1)
cc <- cumsum(aa) - cumsum(c(0, bb[-length(bb)]))
cc
[1] 1 4 5 0 0 1 6 1 15 16 1
编辑:
另一种方法(感谢 lmo)是:
cc <- cumsum(aa - c(0, head(bb, -1)))
你可以这样做
for(i in 1:10){
aa[i+1] <- (aa[i] - bb[i]) + aa[i+1]
}
aa
[1] 1 4 5 0 0 1 6 1 15 16 1
我有这个数据框,我想在其中执行一些计算。
aa = c (1,3,1,0,0,1,6,1,14,3,0)
bb = c (0,0,5,0,0,1,6,0,2,15,1)
ee = rbind( aa,bb)
df = as.data.frame (ee)
首先,我想从 aa 行的第一个值中减去 bb 行中的第一个值 ... 1 - 0 ... 然后将结果添加到 aa 行中的第二个值 ... 1 + 3 = 4 ... 然后是 4 - 0 ... 然后是 4 + 1 = 5 等等 ...
期望的结果是:
cc = c (1,4,5,0,0,1,6,1,15,16,1)
ff = rbind( cc,bb)
df1 = as.data.frame(ff)
非常感谢任何想法!
您想计算累计和的差值:
cc <- cumsum(aa) - cumsum(c(0, bb[-length(bb)]))
我在开头加了一个0,去掉了bb的最后一个元素。因为你想在第 i 个元素减去第 i 个 bb
之前的结果我测试了一下:
aa = c (1,3,1,0,0,1,6,1,14,3,0)
bb = c (0,0,5,0,0,1,6,0,2,15,1)
cc <- cumsum(aa) - cumsum(c(0, bb[-length(bb)]))
cc
[1] 1 4 5 0 0 1 6 1 15 16 1
编辑: 另一种方法(感谢 lmo)是:
cc <- cumsum(aa - c(0, head(bb, -1)))
你可以这样做
for(i in 1:10){
aa[i+1] <- (aa[i] - bb[i]) + aa[i+1]
}
aa
[1] 1 4 5 0 0 1 6 1 15 16 1