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 に答える