Я следовал функции mvrnorm: «Если n = 1, вектор такой же длины, что и mu, в противном случае матрица n по длине (mu) с одним образцом в каждой строке». и установите n = 1. Длина (Х [г,]) = 3. Как исправить эту ошибку?
n = 100
p = 3
X = matrix(ncol = p, nrow = n)
rho1 = 0.25 #correlation coefficient
rho2 = 0.5
rho3 = 0.75
o1 = 0.5 # sigma
o2 = 0.5
o3 = 0.5
C1 = o1^2 * matrix(c(1, rho1, rho1, 1), nrow = 2)
C2 = o2^2 * matrix(c(1, rho2, rho2, 1), nrow = 2)
C3 = o3^2 * matrix(c(1, rho3, rho3, 1), nrow = 2)
mu1 = c(0,1)
mu2 = c(1,0)
mu3 = c(-1,1)
o = 0.5
y = as.factor(rmultinom(100, size = 1, prob = c(1/3,1/3,1/3)))
for (i in 1:n){
mu = (y[i]==1)*mu1 + (y[i]==2)*mu2+(y[i]==3)*mu3
C = (y[i]==1)*C1 + (y[i]==2)*C2 + (y[i]==3)*C3
X[i,] = mvrnorm(1, mu, C, tol = 1e-6, empirical = FALSE, EISPACK = FALSE)
}
Ошибка в X [i,] <- mvrnorm (1, mu, C, tol = 1e-06, empirical = FALSE, EISPACK = FALSE):количество заменяемых элементов не кратно длине замены </p>