【问题标题】:How can I create unique random numbers in R?如何在 R 中创建唯一的随机数?
【发布时间】:2020-12-05 21:41:57
【问题描述】:

我希望生成 1:100 之间的随机数,然后测试它们被 3 整除。我创建了一个循环。

v <- c(0)
for(i in 1:100){
  r <- floor(runif(1, min=1, max=100))
  if(r %% 3 == 0){
    v <- append(v,r)
  }
}
print(v)

但是,正如您在以下输出中看到的那样,数字确实会不断重复。有没有办法只在 1:100 之间生成 3 的唯一倍数。我知道有一种方法可以使用 seq 函数并生成相同的数字,但我仍然想知道如何获取唯一的随机数。

输出:

[1]  0 18 87 30 45 90 12 72 75 60 27 84 90 27 42 54 63 15 63 30 72 69 57 30  3  6 15 30  3
[30] 60 72  6  6 18 75 96 84 78 24

【问题讨论】:

  • i1 &lt;- seq(1,100,by=1)i1[i1 %% 3 == 0] 可以帮助你!
  • 试试sample(100)
  • sample(0:33)*3 将生成 0 到 100 之间 3 的倍数的随机数
  • @Duck 啊,是的,我知道 seq 函数。但我仍在寻找一种使用唯一随机数的方法,因为我们正在尝试探索不同的方法来做同样的事情
  • @nike.96 :使用您喜欢的搜索引擎并查找“[r] random vector”——例如鸭鸭网。您可以在这里找到非常好的基本示例——不。 5 个结果 -- cookbook-r.com/Numbers/Generating_random_numbers

标签: r function random


【解决方案1】:

sample(1:33)*3 是范围内所有 3 的倍数,以随机顺序排列。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-19
    • 1970-01-01
    • 2012-06-09
    • 1970-01-01
    • 2010-11-19
    • 2013-01-27
    • 1970-01-01
    • 2014-10-20
    相关资源
    最近更新 更多