有一个data.frame:
a<-c(2,8,6,5,8)
b<-c(1,6,7,3,2)
df<-data.frame(a,b)
必须创建一个d列,计算如下: 列d的第一个元素2 = a 2 + b 2 列d [2:5]的其他元素= ifelse(shift(d)> a,a,shift(d)+ a) 因此,我希望收到以下数据框:
如何设置行d的初始值(第一个元素)? 谢谢!
答案 0 :(得分:2)
如果我正确理解了你的问题:
df$d <- NA
df$d[1] <- df$a[1] + df$b[1]
for (i in 2:nrow(df)){
df$d[i] = ifelse(df$d[i-1] > df$a[i], df$a[i], df$d[i-1]+df$a[i])
}
df
a b d
1 2 1 3
2 8 6 11
3 6 7 6
4 5 3 5
5 8 2 13