2013-05-04 4 views
4

Мне нужно генерировать случайные числа между 20 и 50 с 5 приращениями. Например, цифры должны быть 20, 25, 30, 25, 50, 45 и т.д. Разница между цифрами должно быть 5.Как генерировать случайные числа с последовательностью в R

Я попытался это:

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

это дает мне любое число между 20 и 50. Есть ли простой способ сделать это в R?

+0

проверка '? Sample' и'? Seq' – Arun

ответ

11

Я думаю, что Арун имел в виду следующее:

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 
+4

или 'образца (сл (20, 50, с = 5))'. – Arun

+0

@ SimonO101, который дает мне 5 точек данных, а не с шагом 5. Мне нужно 50 очков между 20 и 50 с 5 приращениями. – user1471980

+0

@ user1471980, прочитайте '? Sample'. 'sample (seq (20, 50, by = 5), 50, replace = TRUE)' – Arun

0

Очень похож на исходный код, но деления и умножения на 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 
Смежные вопросы