当前位置: 动力学知识库 > 问答 > 编程问答 >

manova in R error message: length of 'dimnames' [1] not equal to array extent

问题描述:

Trying to run manova on this data:

Create a 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))

check the 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

I type in:

acc_manova <- manova(cbind(MPH10,MPH25,MPH40,MPH55) ~ Degrees, data = acc)

then run it:

 acc_manova

I get an error message:

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

So I figure it has to do with the names of the degrees column: d05,d08,d10 so I dropped the d and 0 place holder. Had the same error message

then I added as.factor(Degrees), ran acc_manova again, and came up with the same error.

Any ideas on this?

网友答案:

Your Degrees column is not numeric, but a factor (categorical data). Changing the factor to numeric solves your problem:

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
分享给朋友:
您可能感兴趣的文章:
随机阅读: