如何在R中指定随机生成器中奇数和偶数的数目?

如何在R中指定随机生成器中奇数和偶数的数目?,r,random,R,Random,我需要生成一个从1到40的9个整数的随机选择,条件如下:输出必须包含5个偶数和4个奇数 我有以下代码来生成9个随机数: x1<- sample(1:40, 9, replace=F) > x1 [1] 2 36 6 10 39 17 14 11 25 我现在需要在等式中加上奇数和偶数条件。我该怎么做呢?假设数字的顺序无关紧要,您可以试试 c(sample(seq(2,40,by=2), 5, replace=F), sample(seq(1,39,by=2), 4, rep

我需要生成一个从1到40的9个整数的随机选择,条件如下:输出必须包含5个偶数和4个奇数

我有以下代码来生成9个随机数:

x1<- sample(1:40, 9, replace=F)
> x1
  [1]  2 36  6 10 39 17 14 11 25

我现在需要在等式中加上奇数和偶数条件。我该怎么做呢?

假设数字的顺序无关紧要,您可以试试

c(sample(seq(2,40,by=2), 5, replace=F), sample(seq(1,39,by=2), 4, replace=F))
其中,seq2,40,by=2生成偶数,seq1,39,by=2生成奇数。如果顺序很重要,也就是说,它应该是随机的,那么您可以用样本包装外部c:


希望这有帮助

假设数字的顺序无关紧要,您可以尝试

c(sample(seq(2,40,by=2), 5, replace=F), sample(seq(1,39,by=2), 4, replace=F))
其中,seq2,40,by=2生成偶数,seq1,39,by=2生成奇数。如果顺序很重要,也就是说,它应该是随机的,那么您可以用样本包装外部c:

希望这有帮助

您可以尝试以下方法:

sample(c(2*sample(0:19, 4) + 1, 2*sample(1:20, 5)))
你可以试试这个:

sample(c(2*sample(0:19, 4) + 1, 2*sample(1:20, 5)))

在运行与顺序有关的代码时,我收到以下错误消息:sample.intlengthx中的错误,size,replace,prob:当'replace=FALSE'@user3115933 oops时,无法获取大于总体的样本,我的错误!修正了它;我替换了c,而不是包装它。在运行与顺序有关的代码时,我收到以下错误消息:sample.intlengthx,size,replace,prob中出错:当'replace=FALSE'@user3115933 oops时,无法获取大于总体的样本,我的错误!修正了它;我替换了c而不是包装它。