2013-05-04 43 views
4

我需要用5個增量生成20到50之間的隨機數字。例如,該數字必須在20,25,30,25,50,45等的數字之間的差值應該是5.如何生成R中有序列的隨機數字

我嘗試這樣做:

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

這給了我20之間的任何數和50.在R中有一個簡單的方法來做到這一點?

+0

檢查'樣本'和'?seq' – Arun 2013-05-04 21:16:12

回答

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

或'sample(seq(20,50,by = 5))'。 – Arun 2013-05-04 21:22:45

+0

@ SimonO101,這隻給我5個數據點,而不是5的增量。我需要20點和50點之間的50點,5點增量。 – user1471980 2013-05-04 21:23:26

+0

@ user1471980,閱讀'?sample'。 'sample(seq(20,50,by = 5),50,replace = TRUE)' – Arun 2013-05-04 21:25:28

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