2017-05-21 40 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.你试图把一个5长的长钉放入1个长洞 –

回答

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  
    } 
}