我正在尝试创建一个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 :(得分:0)
认为你错过了一个等号
if (j==1) {
x[i] = rnorm(1, mu1, sig1)
}