0

我正在尝试制作一个循环,它会更改每次迭代的名称。代码如下所示。所以我基本上需要的是例如对于 a=2,我希望 W_(a-1) 引用一个名为 W_1 的矩阵,W_(a) 引用一个名为 W_1 的矩阵,最后是 GMM_(a-1)$par应参考 GMM_(1)$par。

for (a in 2:100){
    GMM <- function(beta) {
        for (i in 1:(nrow(gmm_i))){
            gmm_i[i,] <- g_beta(i,beta)
        }
        gmm_N <- t(colSums(gmm_i)) %*% W_(a-1) %*% colSums(gmm_i) 
        W_(a) <<- solve((1/(nrow(A)/5))*t(gmm_i)%*%gmm_i)                     
        return(gmm_N)
    }
    GMM_(a)<-optim(GMM_(a-1)$par,GMM)
}

我希望我的问题是有道理的。

谢谢。

4

1 回答 1

0

你想在你的工作区中有 100 个变量(a1,a2 ....)吗?如果你把所有这些都放在一个列表中会更好,因为它很容易使用。但是如果由于某种原因你确实想要一堆变量然后使用这个,

W_1 = 0
for (a in 2:100){
  GMM <- function(beta) {
    for (i in 1:(nrow(gmm_i))){
      gmm_i[i,] <- g_beta(i,beta)
    }
    gmm_N <- t(colSums(gmm_i)) %*% W_(a-1) %*% colSums(gmm_i) 
    tmp <- solve((1/(nrow(A)/5))*t(gmm_i)%*%gmm_i)
    assign((paste("W_",a,sep="")),tmp,envir=.GlobalEnv)
    return(gmm_N)
  }
  tmp1 <- optim(GMM_(a-1)$par,GMM)
  assign((paste("GMM_",a,sep="")),tmp1,envir=.GlobalEnv)

GMM_(a)<-}

给 W_1 适当的值。

于 2013-10-11T10:34:02.597 回答