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