我有这个数据框,我想进行一些计算。
@echo off
setlocal enabledelayedexpansion
FOR /F "delims== tokens=1,*" %%a in ('type "sample.ini"') DO ( set pathvar=%%b
echo !pathvar!
)
首先我想从行中的第一个值中减去行bb中的第一个值... 1 - 0 ...然后结果添加到行aa中的第二个值... 1 + 3 = 4 ...然后4 - 0 ......并且aa 4 + 1 = 5等等......
期望的结果是:
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)
任何想法真的很感激!
答案 0 :(得分:3)
您想要执行累积总和的差异:
cc <- cumsum(aa) - cumsum(c(0, bb[-length(bb)]))
我在开头添加了一个0并删除了bb的最后一个元素。因为你想要在第i个元素之前得到结果,然后减去ith 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)))
答案 1 :(得分:0)
你可以这样做
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