2016-03-07 31 views
-1

這真的很簡單,但我一直卡住!我試圖創建R A名單的1000零與1.5號在隨機時間間隔增加20倍,看起來像:隨機號碼列表只有兩個數字

0.000 
0.000 
1.500 
0.000 
1.500 
0.000 
0.000 

但我堅持就如何保持它作爲只是兩個數字?我一直在使用該序列的命令,但是無法得到正確的參數...

+0

你想要的輸出不清楚。最終會有多少總零? 1000或980? –

+0

另一種選擇是先創建你想要的'rep(c(0,1.5),c(980,20))',然後隨機化該'rep(c(0,1.5),c(980, 20))[sample(1000)]' – rawr

回答

5

樣品指數:

x <- numeric(1000) #adjust to 1020 if you really need 1000 zeros in the result 
x[sample(length(x), 20)] <- 1.5 
0

第一行如何

x <- rep(0, 1000) 
positions <- round(runif(20, 1, 1000)) 
x[positions] <- 1.5 

產生零向量和那麼20個隨機位置被覆蓋1.5。

+2

這可能導致少於20個指定值,它基本上是取代替換。 – Roland

1
sample(c(double(1000L),rep(1.5,20L))); 

在我的上述溶液我假定你意思是「插入」當您所述「添加」,從而使與長度1020的載體如果意思是「添加」(如在添加針對零)你可以用這個:

sample(c(double(980L),rep(1.5,20L))); 
+0

嗯,我認爲OP意味着「插入」而不是「加入」,即1000個零點,隨機插入20個1.5s,總長度爲1020. – bgoldst

+0

他們的語言有點不清楚。 – Roland

相關問題