首页 > 解决方案 > Cumsum 函数结果与迭代循环不同

问题描述

我尝试用 R 函数 cumsum() 替换 for-loop 添加,但结果略有不同。差异大多是微不足道的。不过,我想知道是什么导致了这个问题。

day <- c(1:100)
curve <- sapply(day, function(x){0.01 * exp(-(x/30.5)^0.7)})

methodA <- cumsum(curve)

methodB <- array(dim = length(day))
methodB[1] <- curve[1]
for (i in c(2: length(day))){
  methodB[i] <- methodB[i-1] + curve[i]
}

identical(methodA, methodB)
#### FALSE
mean(methodA - methodB) == 0
#### FALSE: ~ 4.37e-17

标签: r

解决方案


推荐阅读