Попытка создать функцию для 3-компонентного нормального распределения смеси

Я пытаюсь создать функцию R для генерации выборок из 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
}

1 ответ

Думаю, что вам не хватает знака равенства

  if (j==1) {
          x[i] = rnorm(1, mu1, sig1)
  }
Другие вопросы по тегам