我需要以 5 个增量生成 20 到 50 之间的随机数。例如,数字必须是 20、25、30、25、50、45 等。数字之间的差应该是 5。
我试过这个:
x<-floor(runif(50,20,50))
这给了我 20 到 50 之间的任何数字。在 R 中有没有简单的方法可以做到这一点?
我需要以 5 个增量生成 20 到 50 之间的随机数。例如,数字必须是 20、25、30、25、50、45 等。数字之间的差应该是 5。
我试过这个:
x<-floor(runif(50,20,50))
这给了我 20 到 50 之间的任何数字。在 R 中有没有简单的方法可以做到这一点?
我认为 Arun 指的是这个:
set.seed(123)
sample(seq(from = 20, to = 50, by = 5), size = 50, replace = TRUE)
# [1] 30 45 30 50 50 20 35 50 35 35 50 35 40 40 20 50 25 20 30 50 50 40 40 50 40
# [26] 40 35 40 30 25 50 50 40 45 20 35 45 25 30 25 20 30 30 30 25 20 25 35 25 50
与您的原始代码非常相似,但除以 5 并乘以 5 以得到 5 而不是 1 的舍入。
floor(runif(50,20,50)/5)*5
[1] 45 30 45 35 45 35 25 30 35 40 20 45 25 30 25 40 30 40 40 40 20 30 30 40 35 30 25 45 25 20 45 20 35 35 30 20 20 20 20 35 35 45 45 45 45 20
[47] 45 40 40 20