如何在R编程中实现多嵌套for循环的双sigma?

时间:2018-04-01 03:56:55

标签: r

我习惯用C ++和Java编程,但我是R编程的新手。我只想要这个嵌套的实现这个公式

enter image description here

我的第一个想法是使用嵌套for循环。但有些人建议我在R编程中避免嵌套for循环并找到功能方法。

所以我试着用这种方式

j <- seq(2,99)
k <- seq(j, 100) 
answer <- sum(k)
answer

但是上面的代码会出现此错误消息

Error in seq.default(j, 100) : 'from' must be of length 1
Calls: seq -> seq.default

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:2)

seq参数未进行矢量化。因此,遍历它以获得list vector s,unlist,然后获取sum

sum(unlist(lapply(j, function(.j) seq(.j, 100))))

或致电Vectorize,致电lapply

sum(unlist(Vectorize(function(x) seq(x, 100))(j)))

答案 1 :(得分:1)

如果您想坚持使用for循环解决方案,您可以执行以下操作:

j <- seq(2,99)

sums <- vector(length = length(j))

for (k in j){
  sums[k-1] = sum(seq(k,100))
}

answer <- sum(sums)