我正在尝试创建一个循环,它会更改每次迭代的名称。代码如下所示。所以我基本上需要的是例如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)
}
我希望我的问题有道理。
感谢。
答案 0 :(得分: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_(一)及LT; - }
给予W_1适当的价值。