【发布时间】:2021-02-17 01:08:40
【问题描述】:
我想使用 1000 次重复来绘制 L 波浪号的直方图,其中 γ = 0.9*\sqrt{2logn},n=1000。我为 L 编写了函数,为 L 波浪号编写了一个“for, if”循环。但是我在“if”循环中得到了错误,当我使用“replicate”生成直方图时,它只给了我 1000 个相同的值。
你能帮我解决这个错误以及如何使用 1000 个重复来绘制直方图吗?谢谢!
错误:“在 if (data[i, ] 1,并且只使用第一个元素"
n=10^3
del = 0.9*sqrt(2*log(n))
data <- matrix(replicate(n,rnorm(n,0,1)),nrow = n)
L = n^{-1}*sum(exp(del*data[1,]-0.5*del^2))
#L tilde
est_L <- function(n){
est=0
for (i in 1:n){
if (data[i,]<sqrt(2*log(n))){
est = est + n^{-1}*sum(exp(del*data[1,]-0.5*del^2))
}
return(est)
}
}
#repeat 1000 times
hist(replicate(1000,est_L(10^3)))
【问题讨论】:
标签: r for-loop if-statement error-handling statistics