不能R中
问题描述:
我尝试使用不复制弄清楚双因素方差分析方差分析()和似乎无法得到我尝试了这种方式的正确程序(在不同的岗位)。不能R中
manova in R error message: length of 'dimnames' [1] not equal to array extent
文本问题与踏板旋转和初始速度是加速度的预测因素有关。
这里是数据:
acc <- data.frame(Degrees = c("d5","d8","d10"), 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
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
不知道下一步怎么办。
答
传统的答案是:
macc <- melt(acc, id.var="Degrees")
lm(value ~ Degrees + variable, macc)
anova(lm(value ~ Degrees + variable, macc))
而所有剩下的正在建设中的结果的正确描述。 (请注意,我使用“+”而不是“*”)。
anova(lm(value ~ Degrees * variable, macc))
你可能已经编写任何一个或者度或MPH变量既作为数字和得到的不饱和型号:施工时饱和模型(一个无残留物)使用交互模式,当你得到一个近乎完美的答案。但它仍然会增加描述结果的复杂性。
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))
macc <- melt(acc, id.var="Degrees")
anova(lm(value ~ Degrees * variable, macc))
使用sub从字符变量中删除“MPH”。我认为有必要使用as.numeric(as.character())
作为我认为是因素变量,但sub
操作显然剥离了因子属性,仅使用as.numeric
就足够了。
macc$speed <- as.numeric(sub("MPH", "", macc$variable))
anova(lm(value ~ Degrees + speed, macc))
# output omitted
anova(lm(value ~ Degrees * speed, macc))
#-------------------
Analysis of Variance Table
Response: value
Df Sum Sq Mean Sq F value Pr(>F)
Degrees 1 0.016827 0.016827 16.904 0.003384 **
speed 1 0.048735 0.048735 48.959 0.000113 ***
Degrees:speed 1 0.006367 0.006367 6.396 0.035309 *
Residuals 8 0.007963 0.000995
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
+0
是的,发现我的错误。没有复制使用'+'复制使用'*'。所以你原来的融化仍然工作,但谢谢你的彻底答案。 – Travis 2011-12-28 06:38:18
我不认为你给这个明显的家庭作业问题的整个设置。在我看来,Degrees和MPH列都是预测指标。 – 2011-12-18 02:23:32
更多提示:如果您没有复制,请不要使用Manova。你也许应该看看reshape2软件包能够将宽格式数据集制作成长格式数据集。 (你应该编辑你的问题,而不是张贴更多的问题。) – 2011-12-18 02:32:07
是的,使用一个旧的介绍来统计文本的数据来学习R.我不知道R中的编程,只是试图学习它。是的,两者都是预测因素,我想在它上面运行一个双因子anova。文本有一个表,就像上面的data.frame一样,只是不知道在R中做什么,文本使用minitab和excel ...感谢reshape2包的建议,我会给它看看。 – Travis 2011-12-18 03:37:37