2016-11-08 45 views
0

我想創建一個R函數來生成3組分正常混合分佈與3個不同參數的樣本,但我不斷收到錯誤消息。試圖創建一個3組分正常混合分佈的函數

這裏是我當前的代碼

normal.mixture = function(n, mu1, sig1, w1, mu2, sig2, w2, mu3, sig3, w3) { 
    p = c(w1, w2, w3) 
    x=vector(mode="numeric", length=n) 
     for (i in 1:n) { 
      j = sample(c(1,2,3), 1, prob=p) 
      if (j==1) { 
       x[i] rnorm(1, mu1, sig1) 
      } 
      else if (j==2) { 
       x[i] = rnorm(1, mu2, sig2) 
      } 
      else { 
       x[i] = rnorm(1, mu3, sig3) 
      } 
     } 
    x 
} 
+0

請解釋一下什麼是預期的結果,和錯誤或故障,你有什麼。 – xpereta

+0

錯誤說出乎意料}但是我已經檢查過,所有的大括號都是等量的。我想看到的結果是一個向量,我可以繪製 –

+0

的分佈情況。請包括您已經包含的錯誤的細節和預期的結果。 – xpereta

回答

0

認爲你缺少一個等號

if (j==1) { 
      x[i] = rnorm(1, mu1, sig1) 
    }