7

我需要以 5 个增量生成 20 到 50 之间的随机数。例如,数字必须是 20、25、30、25、50、45 等。数字之间的差应该是 5。

我试过这个:

x<-floor(runif(50,20,50))

这给了我 20 到 50 之间的任何数字。在 R 中有没有简单的方法可以做到这一点?

4

2 回答 2

16

我认为 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
于 2013-05-04T21:20:48.400 回答
1

与您的原始代码非常相似,但除以 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
于 2013-05-05T04:26:59.753 回答