Manova в R сообщение об ошибке: длина 'dimnames' [1] не равна экстенту массива
Попытка запустить manova по этим данным:
Создайте data.frame:
acc <- data.frame(Degrees = c("5","8","10"), MPH10=c(0.35, 0.37, 0.32),
MPH25=c(0.19, 0.28, 0.30), MPH40=c(0.14, 0.19, 0.29), MPH55=c(0.10, 0.19, 0.23))
проверьте data.frame:
acc
Degrees MPH10 MPH25 MPH40 MPH55
1 5 0.35 0.19 0.14 0.10
2 8 0.37 0.28 0.19 0.19
3 10 0.32 0.30 0.29 0.23
Я набираю:
acc_manova <- manova(cbind(MPH10,MPH25,MPH40,MPH55) ~ Degrees, data = acc)
затем запустите его:
acc_manova
Я получаю сообщение об ошибке:
Call:
manova(cbind(MPH10, MPH25, MPH40, MPH55) ~ as.factor(Degrees),
data = acc)
Terms:
Error in dimnames(tmp) <- list(c(rn, "Deg. of Freedom"), nmeffect) :
length of 'dimnames' [1] not equal to array extent
Поэтому я полагаю, что это связано с именами столбцов градусов: d05,d08,d10, поэтому я опустил заполнитель d и 0. Было то же сообщение об ошибке
затем я добавил as.factor(градусы), снова запустил acc_manova и обнаружил ту же ошибку.
Есть идеи по этому поводу?
1 ответ
Решение
Ваш столбец Степени не числовой, а фактор (категориальные данные). Изменение коэффициента на числовое решает вашу проблему:
acc$Degrees = as.numeric(acc$Degrees)
acc_manova <- manova(cbind(MPH10,MPH25,MPH40,MPH55) ~ Degrees, data = acc)
> acc_manova
Call:
manova(cbind(MPH10, MPH25, MPH40, MPH55) ~ Degrees, data = acc)
Terms:
Degrees Residuals
resp 1 1.2500e-03 1.6667e-05
resp 2 0.000200000 0.006666667
resp 3 0.005000000 0.006666667
resp 4 0.000800000 0.008066667
Deg. of Freedom 1 1
Residual standard error: 0.004082483 0.08164966 0.08164966 0.08981462
Estimated effects may be unbalanced