R:产生具有元素出现在样本中的次数的向量

时间:2019-01-30 18:32:42

标签: r loops vector random sample

我有一个家庭作业问题,其中有30个男人的样本,其中有10个是随机样本:

  

男人    [1] 15 18 14 6 22 17 20 3 16 9

然后从它们中随机抽取12个样本,并确定每个人出现多少次。

问题陈述一字不漏地是:“对30名人口中的10个人进行12个抽样,并记录每个人的人数 他出现的样本。”

我尝试过解决该问题的循环,该循环将产生一个包含10个元素的向量,每个元素都与适当的索引对齐。

mtimes<-rep(0,12)
> repeat{
+ mtimes[menind]<-sum(sample(pop1,12,replace = TRUE) == men[menind])
+ menind = menind + 1
+ if (menind == 10){
+ break
+ }
+ }

这产生了一个向量:

  

次    [1] 0 0 1 0 0 0 0 0 0 0

似乎第三个人不应只出现过一次,而样本中没有其他人出现过。

1 个答案:

答案 0 :(得分:0)

您可以在此处使用replicatetable

set.seed(1)
table(replicate(n = 12, expr = sample(30, size = 10, replace = TRUE)))
# 1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 
# 3  2  3  5  2  2  5  5  3  3  6  7  4  5  8  2  1  3  2  9  3  7  2  8  3  3  5  3  3  3

我认为“男人”是指1:30


另一种选择是将样本大小增加到10 * 12,如

set.seed(1)
table(sample(30, size = 10*12, replace = TRUE))