2016-11-08 1 views
0

Я пытаюсь создать функцию 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 
} 
+0

Пожалуйста, объясните, что ожидаемый результат, а именно то, что ошибки или проблемы у вас есть. – xpereta

+0

Ошибка говорит о неожиданности} однако я проверил, что все фигурные скобки имеют равную величину. Результат, который я хочу увидеть, - это вектор, который я могу рассказать о распределении –

+0

. Пожалуйста, включите детали ошибок, которые вы согласовали, и ожидаемого результата в теле вашего сообщения. – xpereta

ответ

0

думаю, вы пропустили знак равенства

if (j==1) { 
      x[i] = rnorm(1, mu1, sig1) 
    } 
Смежные вопросы