我试图创建一个离散的正态分布,例如
x <- rnorm(1000, mean = 350, sd = 20)
但是我不认为rnorm
函数有一个内置的“仅离散数字”选项。我花了几个小时试图在StackOverflow、谷歌和R文档上搜索这个,但还没有找到任何东西。
发布于 2015-09-24 07:27:34
显然,不存在离散正态分布,因为在默认情况下它是连续的。然而,正如提到的这里 (维基百科并不是最好的来源,但无论如何这是正确的):
如果n足够大,那么分布的倾斜就不会太大。在这种情况下,用正态分布给出了B(n,p)的合理逼近。
这可以用一个简单的例子来看:
par(mfrow=c(1,2) )
#values generated by a binomial distribution
plot(density(rbinom(1000, 30, p=0.25)))
#values generated by a normal distribution
plot(density(rnorm(1000)))
情节:
左边的图(二项式)当然接近于右边(正常的),这在n goes to Inf
中会变得更加明显。
如您所见,rbinom(1000, 30, p=0.25)
将生成离散值(整数)。此外,密度可能不是用于离散变量的最佳函数,但它在这里证明了这一点。
发布于 2015-09-24 08:48:42
如果你想按照正态分布生成一组随机整数,你可以简单地把它们围成这样.
round(rnorm(10, 5, 1), 0)
发布于 2021-11-24 05:25:12
library(extraDistr)
set.seed(12)
rdnorm(10)
https://stackoverflow.com/questions/32764816
复制