我想生成整数的R中的样本与规定的平均。我用mu+sd*scale(rnorm(n))
生成n
值的样品具有完全相同的平均值= mu
但这产生浮点值;我想生成整数值代替。例如,我想生成平均= 4的样品。我的样本大小n
= 5,生成的值的一个例子将是{2,6,4,3,5}。如何做到这一点R中,同时满足均值的特定值的约束任何想法?
与n
的平均采摘m
值相当于采摘n
值那笔m*n
。根据抽样分区(集,加起来所需的总价值)均匀下面是一个解决方案,但我不是 - (否则事情就变得更难我假设你要坚持正整数!)相信这是你想要的,因为它不随值均匀采样,但在分区......也许别人可以做的更好,或者找出如何reweight样本。
这蛮力解决方案也可能会失败情况下比你的榜样大得多(有总共20,5604的共计30,37338共40 627个分区...)
m <- 4
n <- 5
library("partitions")
pp <- parts(m*n) ## all sets of integers that sum to m*n (=20 here)
## restrict to partitions with exactly n (=5) non-zero values.
pp5 <- pp[1:5,colSums(pp>0)==n]
set.seed(101) ## for reproducibility
## sample uniformly from this set
pp5[,sample(ncol(pp5),size=1)] ## 9, 5, 4, 1, 1