【发布时间】:2023-04-03 23:09:01
【问题描述】:
我正在尝试通过首先绘制标准正态分布曲线然后在图上均匀生成点来编写 R 脚本。我想收集标准普通 PDF 下的所有点数。但是当我计算金额时,它与图上显示的不一样。
这是我的代码,
N = 20
normpdf = function(x) {
f = (1/sqrt(2*pi))*exp(x^2/(-2))
return(f)
}
x = seq(-5,5,length=N)
normprobdist = normpdf(x)
plot(x,normprobdist,type="l")
par(new=TRUE)
u = NULL
dots_undercurve = NULL
for (i in 1:length(x)) {
u[i] = runif(x,0,1)
if (u[i]<=normprobdist[i]) {
dots_undercurve[i] = TRUE
}
else {
dots_undercurve[i] = FALSE
}
}
sum(dots_undercurve)
plot(x,u,xaxt='n', yaxt = 'n', ann=FALSE)
sum(dots_undercurve) 显示曲线下的点数与图上显示的不同。我的编程知识很差,所以如果有人能找到我的脚本有什么问题吗? 谢谢
【问题讨论】:
-
为什么将
x传递给runif?它期望绘制的随机值的数量作为第一个参数。 -
我的错,我当然应该通过1
标签: r