【问题标题】:How to specify the number of odd and even numbers from a random generator in R?如何从R中的随机生成器中指定奇数和偶数的数量?
【发布时间】:2018-07-27 19:47:48
【问题描述】:

我需要生成一个从 1 到 40 的 9 个整数的 random 选择,条件如下:输出必须包含 5 个 even 数字和 4 个 odd 数字。

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

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

我现在需要在方程式中添加奇数和偶数条件。我该怎么做?

【问题讨论】:

    标签: r random


    【解决方案1】:

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

    c(sample(seq(2,40,by=2), 5, replace=F), sample(seq(1,39,by=2), 4, replace=F))
    

    其中seq(2,40,by=2) 生成偶数,seq(1,39,by=2) 生成奇数。如果顺序确实很重要(即它也应该是随机的),您可以用sample 包裹外部c

    sample(c(sample(seq(2,40,by=2), 5, replace=F),sample(seq(1,39,by=2), 4, replace=F)))
    

    希望这会有所帮助!

    【讨论】:

    • 在运行顺序很重要的代码时,我收到以下错误消息: sample.int(length(x), size, replace, prob) 中的错误:无法采集大于总体的样本时'替换 = FALSE'
    • @user3115933 哎呀,我的错!修复它;)我替换了c而不是包装它。
    【解决方案2】:

    你可以试试这个:

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

    【讨论】:

      猜你喜欢
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 2020-02-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-24
      相关资源
      最近更新 更多