1
> sample(c(2), 10, replace = TRUE, prob = 1)
Error in sample.int(x, size, replace, prob) :
incorrect number of probabilities
> sample(c(1), 10, replace = TRUE, prob = 1)
[1] 1 1 1 1 1 1 1 1 1 1
指定概率在第一個例子的麻煩,我想採樣向量2
十次,以更換,每個概率= 1我期望的輸出是2 2 2 2 2 2 2 2 2 2
R:與樣本函數
但是,它似乎與1
的矢量工作?
如果由於某種原因您仍然想要包含'prob',您可以執行以下操作:'x < - 2'然後'sample(x,10,replace = TRUE,prob = c(rep(0,x -1),1))' –
'sample(2,10,replace = TRUE,prob = c(0,1))'。我想這是你想寫的。 – Onyambu
Dave的解決方案適用於任何整數。例如,如果'x'爲3,則當Dave的解決方案爲您處理時,您需要手動將'prob'更改爲'c(0,0,1)'。然而,我認爲主要的問題是如果'x'是一個長度爲1的數字,那麼OP沒有意識到'sample'將從'1:x'中抽樣。可能更容易將它們濾除並使用'rep ',如果length(x)> 1',則只應用'sample',這取決於當x是單個值時所需的解決方案。 –