R设置初始值

时间:2018-04-07 17:04:55

标签: r dataframe

有一个data.frame:

a<-c(2,8,6,5,8)
b<-c(1,6,7,3,2)
df<-data.frame(a,b)

enter image description here

必须创建一个d列,计算如下: 列d的第一个元素2 = a 2 + b 2 列d [2:5]的其他元素= ifelse(shift(d)> a,a,shift(d)+ a) 因此,我希望收到以下数据框:

enter image description here

如何设置行d的初始值(第一个元素)? 谢谢!

1 个答案:

答案 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