2017-05-21 22 views
1

コード:このエラーの意味は?

pvalue <- matrix(nrow = 9, ncol = 10000) 

for(i in 1:9) { 
    for(j in 1:10000) { 
    pvalue[i,j]=integrate(dnorm,0,1)  
    } 
} 

エラー:

Error in pvalue[i, j] <- integrate(dnorm, 0, 1) : number of items to 
replace is not a multiple of replacement length` 
+0

はなぜRはCDFを提供するとき密度関数を統合しようとしていますか? – Roland

+2

エラーは 'length(integrate(dnorm、0、1))'が5で 'length(pvalue [i、j])'が1であるためです。あなたは1つの長い穴に5つの長いペグを入れようとしています –

答えて

1

integrate(dnorm,0,1)の出力は、リストではなく、番号です。

str(integrate(dnorm,0,1)) 

List of 5 
$ value  : num 0.341 
$ abs.error : num 3.79e-15 
$ subdivisions: int 1 
$ message  : chr "OK" 
$ call  : language integrate(f = dnorm, lower = 0, upper = 1) 
- attr(*, "class")= chr "integrate" 

作業コードは次のとおりです。

pvalue <- matrix(nrow = 9, ncol = 10000) 

for(i in 1:9) { 
    for(j in 1:10000) { 
    pvalue[i,j] <- integrate(dnorm,0,1)$value  
    } 
} 
関連する問題