R中的累计和

Cumulative sums in R

我想在 R 中计算以下项,但不使用循环(“for”循环):

到目前为止,我已经手动计算并尝试对索引变量 i 和 j 使用序列函数并将它们集成到 cumsum 函数中并对返回向量求和。

i <- seq(1:10)
j <- seq(1:5)

sum(cumsum((i^5)/(10+j^i)))

然而,结果与我的人工计算不符,所以这似乎是一种错误的做法。有人可以帮我解决这个问题吗?

给出

i <- seq(1:10)
j <- seq(1:5)

解决方案 1:

ir <- rep(i, each = length(j))
jr <- rep(j, length(i))
sum(ir^5 / (10 + jr^ir))
#> [1] 20845.76

解决方案 2:

d <- expand.grid(i=i,j=j)
with(d, sum(i^5 / (10 + j^i)))
#> [1] 20845.76

解决方案 3:(@jogo)

sum(sapply(i, function(i) i^5 / (10+j^i)))
#> [1] 20845.76

尝试outer

> sum(outer(1:10, 1:5, FUN = function(i,j) i^5/(10+j^i)))
[1] 20845.76