Ошибка в dim (data) <- dim: неверный первый аргумент - PullRequest
1 голос
/ 22 февраля 2020

Я пытаюсь запустить этот код, но получаю сообщение об ошибке: 1001 *

Ошибка в dim (данные) <- dim: неверный первый аргумент </p>

sigma <- matrix(c(1.0, 0,
                  0, 1.0), nrow = 2)
mu1 <- c(0.5,1.5)
mu2 <- c(1,2)
mu3 <- c(1.5,2.5)

sim=100
t2err=0
for (i in 1:sim){
  x1 <- data.frame(mvrnorm(n = 10, mu = mu1, Sigma = sigma),
                   subjects = c(rep('1', 10)))
  x2 <- data.frame(mvrnorm(n = 10, mu = mu2, Sigma = sigma),
                   subjects = c(rep('2', 10)))                
  x3 <- data.frame(mvrnorm(n = 10, mu = mu3, Sigma = sigma),
                   subjects = c(rep('3', 10)))
  x <- rbind(x1,x2,x3)
  ## p-value ##
  if (((summary(manova(as.matrix(cbind(x[,1:2])~x$subjects)),'Wilks'))$stats[1,6]) > 0.05) (t2err=t2err+1) 

}
cat("Power rate in percentage is",(1-(t2err/sim))*100,"%")

Кто-нибудь знает, что пошло не так? потому что, когда я делаю то же самое только с x1 вместо x = (x1, x2, x3), все кажется нормальным.

Спасибо.

1 Ответ

2 голосов
/ 22 февраля 2020

Кажется, у вас есть проблема со строкой оператора if, я исправил строку ниже:

if (((summary(manova(as.matrix(x[,1:2])~ x$subjects),'Wilks'))$stats[1,6]) > 0.05) (t2err=t2err+1) 

вам не нужен cbind там плюс как .matrix должен быть обернут больше x[,1:2] не на всю формулу, что могло произойти из-за неправильного порядка скобок.

Если вы замените код на строку выше, это должно сработать.

...