R 设定初始值
有一个data.frame:R 设定初始值,r,dataframe,R,Dataframe,有一个data.frame: a<-c(2,8,6,5,8) b<-c(1,6,7,3,2) df<-data.frame(a,b) a如果我正确理解了你的问题: 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
a<-c(2,8,6,5,8)
b<-c(1,6,7,3,2)
df<-data.frame(a,b)
a如果我正确理解了你的问题:
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
df$d如果我正确理解了您的问题:
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
df$dshift
不是基本的R功能。shift
从何而来?列的第一个元素:d(1])=a(1)+b(1)。将列创建为NA
,df$d=NA
,然后设置第一个值df$d[1]=df$a[1]+df$b[1]
shift
不是基本的R函数。shift
从何而来?列的第一个元素:d(1])=a(1)+b(1)。将列创建为NA
,df$d=NA
,然后设置第一个值df$d[1]=df$a[1]+df$b[1]
完美!非常感谢你!不客气。如果它解决了你的问题,请考虑接受答案:)完美!非常感谢你!不客气。如果解决了你的问题,请考虑接受答案。