如何在R中的for循环中使用for循环

时间:2015-01-23 12:02:37

标签: r for-loop

我是R的新手,但我有一些Java经验。在Java中,我曾经在其他for循环中使用for循环进行编码,但是我注意到它在R中的工作方式不同。

p <- 11
diags <- list(rep(0.30, p), rep(0.45, p), rep(0.25, p)) 
Matrix <- as.matrix(bandSparse(p, k = -c(-1:1), diag = c(diags), symm=FALSE)) 
Matrix[1,1] <- 0.70
Matrix[11,11] <- 0.75

vector <- rep(0, 11)
vector[5] <- 1
vector

for(i in 1:240){
    e <- vector %*% (Matrix %^% i)
    for(j in 2:24){
        cumulativeSum <- cumulativeSum + e[j]
    }
}

我想在第一个for循环中完成每个矩阵乘法的第二个for循环。我尝试了几件没有我希望的结果的东西,我希望有人可以帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

首先,据我所知,e是1x11矩阵,因此使用索引2:24循环它是很奇怪的。

其次,由于它是数字上的一行,然后sum()工作,不需要循环它。

for(i in 1:240){
  e <- vector %*% (Matrix %^% i)
  cumulativeSum <- cumulativeSum + sum(e)
}