Я установил n = 1 в функции mvrnorm, как исправить ошибку «количество заменяемых элементов не кратно длине замены»? - PullRequest
0 голосов
/ 05 октября 2019

Я следовал функции 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>

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...