2017-02-28 32 views
0

현재이 웹 사이트 http://www.quantpsy.org/medmc/medmc.htm에서 몬테카를로 방법을 사용하고 있습니다. 비록 코드가 (몇 가지 사소한 수정과 함께) 2x2 또는 3x3 매트릭스로 작업했지만, 다음 4x4 매트릭스에 대한 에러 코드가 계속 나타납니다 :R 행렬의 코드 오류 : 'dimnames'는 목록이어야합니다.

매트릭스 (c (0.0461705, 0, 0, 0, 0, 0, 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 인수를 지정하십시오. . 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 벡터의 길이는 각각 행 수 및 열 수와 일치해야합니다.