R 错误消息中的 manova:'dimnames' [1] 的长度不等于数组范围 [英] manova in R error message: length of 'dimnames' [1] not equal to array extent
本文介绍了R 错误消息中的 manova:'dimnames' [1] 的长度不等于数组范围的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
尝试对这些数据运行 manova:
Trying to run manova on this data:
创建一个数据框:
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))
检查数据框:
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 占位符.有同样的错误信息
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
然后我添加了 as.factor(Degrees),再次运行 acc_manova,并出现了同样的错误.
then I added as.factor(Degrees), ran acc_manova again, and came up with the same error.
对此有什么想法吗?
推荐答案
您的度数列不是数字,而是一个因子(分类数据).将因子更改为数字可以解决您的问题:
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
这篇关于R 错误消息中的 manova:'dimnames' [1] 的长度不等于数组范围的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文