2014-04-23 38 views
-2

我想要繪製矢量圖。假設我有一個poisson參數值的向量,並且對於每個參數,我想繪製1個樣本。有沒有辦法做到這一點沒有循環?從不同循環中繪製不同的分佈R

+0

'rpois'已經被量化。 – Thomas

+0

你是怎麼做到的? rpois(1,矢量)?這不會爲矢量中的每個元素繪製1。 – robertevansanders

+0

閱讀'rpois'可能有助於解答。 –

回答

2

需要,以獲得一個矢量結果來指定每個函數參數向量:

> rpois(rep(1,4), lambda = c(1,10,100,1000)) 
[1] 0 12 88 1031 

關於第一個參數,見the documentation

結果的長度由下式確定n代表rpois,並且是其他函數的數字參數長度的最大值。

n以外的數字參數將循環到結果的長度。僅使用邏輯參數的第一個元素。

如果需要多個繪製在每個級別,那麼你就必須mapply(或Vectorize)功能:

> mapply(rpois, rep(4,4), lambda = c(1,10,100,1000)) 
    [,1] [,2] [,3] [,4] 
[1,] 0 8 78 1016 
[2,] 0 10 106 1044 
[3,] 1 14 97 1004 
[4,] 0 13 94 983 
+0

代表做什麼?當你做代表(111111,4)時,它會給出相同的結果。感謝您的幫助。 – robertevansanders

+1

@ robbieboy74請參閱編輯。 – Thomas

+0

'mapply/Map'將在必要時重新使用參數。 '地圖(rpois,4,c(1,10,100,1000))'將切斷芥末。 – thelatemail