在r中使用正态分布

时间:2013-11-17 22:32:38

标签: r

我正在使用rnorm,但我收到的输出有时是负面的。如何创建限制以使输出不低于0?例如:

output = rnorm(1, 800/20, sqrt(800))

2 个答案:

答案 0 :(得分:2)

为什么不abs(rnorm(1, 800/20, sqrt(800))?写rnorm是为了给出正态分布的数字。也许您希望从截断的分布中获取输出。在这种情况下,您可能需要查看truncnorm包。

library(truncnorm)
rtruncnorm( 1, a=0, b=Inf, 800/20, sqrt(800))

x = seq(-20,200,by=0.01)
y = dtruncnorm(x, a=0, b=Inf, 800/20, sqrt(800) )
plot(x,y,type="l",main="Density of a truncated normal distribution")

enter image description here

答案 1 :(得分:0)

泊松分布仅取正值。否则,golbasche解决方案似乎很完美。

hist(rpois(100, 5))