【发布时间】:2016-06-12 11:03:19
【问题描述】:
我想生成一个随机分布,例如 10,000 个具有预定义的最小值、最大值、平均值和 sd 值的数字。我已经按照这个链接setting upper and lower limits in rnorm 来获得具有固定最小值和最大值的随机分布。但是,这样做时,平均值会发生变化。
例如,
#Function to generate values between a lower limit and an upper limit.
mysamp <- function(n, m, s, lwr, upr, nnorm) {
set.seed(1)
samp <- rnorm(nnorm, m, s)
samp <- samp[samp >= lwr & samp <= upr]
if (length(samp) >= n) {
return(sample(samp, n))
}
stop(simpleError("Not enough values to sample from. Try increasing nnorm."))
}
Account_Value <- mysamp(n=10000, m=1250000, s=4500000, lwr=50000, upr=5000000, nnorm=1000000)
summary(Account_Value)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 50060 1231000 2334000 2410000 3582000 5000000
#Note - though min and max values are good, mean value is very skewed for an obvious reason.
# sd(Account_Value) # 1397349
我不确定我们是否可以生成满足所有条件的随机正态分布。如果还有其他可以满足所有条件的随机分布,也请分享一下。
期待您的意见。
-谢谢。
【问题讨论】:
-
你可以看看
help("distribution")。在底部,有一个指向 CRAN 分发任务视图的链接,它可能会提供一个接近您正在寻找的包。 -
@Imo - 谢谢你的建议。我相信你说的是cran.r-project.org/web/views/Distributions.html。
-
对。我可能应该把链接放在我的帖子里。感谢您添加它。
标签: r random random-sample