2017-02-28 8 views
0

私は現在、このウェブサイトでモンテカルロ法を使用しています。マトリックス中Rマトリックス内のコードエラー:「dimnames」はリストでなければなりません

エラー(C(0.0461705、0、0、0、0、(いくつかのマイナーな適応を持つ)のコードは私の2×2または3×3行列で働いていたが、私は私の4x4の行列のための次のエラーコードを取得しておきます0.0028639、0、0、0、0、0.0740766、:? 'dimnamesは' 私が間違って何をリスト

をやっているしなければならないとどのように私はこのエラーメッセージを解決します

################################################ 
# This code can be edited in this window and # 
# submitted to Rweb, or for faster performance # 
# and a nicer looking histogram, submit  # 
# directly to R.        # 
################################################ 
require(MASS) 
a=1.1727132      
b=0.2171818 
c=1.3666784 
d=0.1850852 
rep=20000 
conf=95 
pest=c(a,b,c,d) 
acov <- matrix(c(
0.0461705, 0, 0, 0, 
0, 0.0028639, 0, 0, 
0, 0, 0.0740766, 0, 
0, 0, 0, 0.0013694 
),4,4,4,4) 
mcmc <- mvrnorm(rep,pest,acov,empirical=FALSE) 
abcd <- mcmc[,1]*mcmc[,2]*mcmc[,3]*mcmc[,4] 
low=(1-conf/100)/2 
upp=((1-conf/100)/2)+(conf/100) 
LL=quantile(abcd,low) 
UL=quantile(abcd,upp) 
LL4=format(LL,digits=4) 
UL4=format(UL,digits=4) 
################################################ 
# The number of columns in the histogram can # 
# be changed by replacing 'FD' below with  # 
# an integer value.       # 
################################################ 
hist(abcd,breaks='FD',col='skyblue',xlab=paste(conf,'% Confidence Interval ','LL',LL4,' UL',UL4), 
main='Distribution of Indirect Effect') 

はありがとう

+1

'matrix'の引数が多すぎます:' matrix(c(...)、4,4) 'にする必要があります。 –

答えて

0

@Remkoが語ったように、引数correcを指定してくださいtly。 R行列は次のように作成できます。

acov <- matrix(c(
0.0461705, 0, 0, 0, 
0, 0.0028639, 0, 0, 
0, 0, 0.0740766, 0, 
0, 0, 0, 0.0013694 
),nrow = 4, ncol = 4, byrow = T,dimnames = list(c("r","o","w","s"),c("c","o","l","s"))) 

データを列方向に並べる場合は、byrow = Fを設定できます。 rownamesとcolnamesベクトルの長さは、それぞれ行数と列数と一致する必要があります。

関連する問題