0

少し混乱したコードで申し訳ありませんが、私はRに比較的慣れていないため、次のコードを入力すると:

for(t in 2:M)
{
alphcandidate=mvrnorm(1,Gibbsalph[,t-1],as.numeric(csquared*4.93)*Zyesinv)

r=exp((-1/2)*(t(rep(1,105))%*%Z%*%(alphacandidate-Gibbsalph[,t-1])+sum((lnyield-X%*%Gibbsbeta[,t-1])^2)%*%(exp(-Z%*%alphcandidate)-exp(-Z%*%Gibbsalph[,t-1]))+t(alphcandidate-rep(0,m))%*%(solve(as.numeric(100)*diag(m)))%*%(alphcandidate-rep(0,m))-t(Gibbsalph[,t-1]-rep(0,m))%*%(solve(as.numeric(100)*diag(m)))%*%(Gibbsalph[,t-1]-rep(0,m)))

if(runif(1)<min(1,r)) {
Gibbsalph[,t]=alphcandidate
} else{
Gibbsalph[,t]=Gibbsalph[,t-1]
}

Dbetanawinv=t(X)%*%(diag(as.vector(1/(exp(Z%*%Gibbsalph[,t])))))%*%X+solve(as.numeric(100)*diag(n))
Dbetach=chol(Dbetanawinv)
Dbetachinv=solve(Dbetach)
Dbeta=Dbetachinv%*%t(Dbetachinv)
dbeta=t(X)%*%(diag(as.vector(1/(exp(Z%*%Gibbsalph[,t])))))%*%lnyield+(solve(as.numeric(100)*diag(n))%*%(rep(0,n)))  
     Gibbsbeta[,t]=mvrnorm(1,Dbeta%*%dbeta,Dbeta)
}

次のエラーが表示されます: エラー: 予期しない 'if' in: "if"

エラー: "}" に予期しない '}' があります

エラー: "}" に予期しない '}' があります

この if ステートメントが正しく機能しない理由がわかりません。申し訳ありませんが、この Web サイトで質問を適切にフォーマットする方法もまだわかりません。どんな助けでも大歓迎です!

4

1 に答える 1

3

)行の末尾 (?) にa がありませんr = exp(...

RStudio に貼り付けると、これがインデント レベルで示されます。

  r=exp((-1/2)*(t(rep(1,105))%*%Z%*%(alphacandidate-Gibbsalph[,t-1])+sum((lnyield-X%*%Gibbsbeta[,t-1])^2)%*%(exp(-Z%*%alphcandidate)-exp(-Z%*%Gibbsalph[,t-1]))+t(alphcandidate-rep(0,m))%*%(solve(as.numeric(100)*diag(m)))%*%(alphcandidate-rep(0,m))-t(Gibbsalph[,t-1]-rep(0,m))%*%(solve(as.numeric(100)*diag(m)))%*%(Gibbsalph[,t-1]-rep(0,m)))

        if(runif(1)<min(1,r)) {
          Gibbsalph[,t]=alphcandidate
于 2013-01-20T22:31:35.993 に答える