我需要一个循环,该循环仅可将某些值添加到初始值中

时间:2019-03-26 20:39:10

标签: r

我需要一个32年的循环,该循环将检查当前年份是否为(假设为4的倍数),如果是,则为我的利息值添加一个值

我尝试使用ifelse,但我认为我不太了解该功能的工作原理。

result <- rbind(c(t,Na))
Na <- 10
for (t in 1:32){
  ifelse(t=c(4,8,12,16,20,24,28,32),(Na <- Na+((t/4)*20)),(Na <- Na))
  result <- rbind(result,round(c(t,Na),2))
}

1 个答案:

答案 0 :(得分:0)

如果您不愿意使用for循环,可以这样做(未经测试):

t <- 1:32
idx <- which(t %% 4==0)
Na <- rep(10,32)
Na[idx] <- Na[idx]+20*t[idx]/4
result <- cbind(t, cumsum(Na))

第二行过滤需要特殊处理的那些组件的索引。第三行创建一个长度为32的向量,所有分量均为10。第四行进行特殊处理。最后一行使用cumsum计算累计和。