R:生成向量,其中包含元素在样本中出现的次数
R: producing vector with number of times an element appears in sample
我有一个家庭作业问题,我有一个 30 人的样本,随机抽取其中的 10 个:
men
[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
+ }
+ }
这导致了一个向量:
mtimes
[1] 0 0 1 0 0 0 0 0 0 0
看来第三个人不应该只出现一次,其他人都没有出现在样本中。
您可以在此处使用 replicate
和 table
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
我假设 "men" 你的意思是 1:30
。
另一种选择是将样本大小增加到 10*12,如
set.seed(1)
table(sample(30, size = 10*12, replace = TRUE))
我有一个家庭作业问题,我有一个 30 人的样本,随机抽取其中的 10 个:
men [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
+ }
+ }
这导致了一个向量:
mtimes [1] 0 0 1 0 0 0 0 0 0 0
看来第三个人不应该只出现一次,其他人都没有出现在样本中。
您可以在此处使用 replicate
和 table
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
我假设 "men" 你的意思是 1:30
。
另一种选择是将样本大小增加到 10*12,如
set.seed(1)
table(sample(30, size = 10*12, replace = TRUE))