首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R中的边际方差分析

R中的边际方差分析
EN

Stack Overflow用户
提问于 2014-02-20 02:51:13
回答 2查看 3.4K关注 0票数 2

我试图使用以下代码运行一个边际(也称为type-III)的ANOVA。不幸的是,我得到了“错误:$操作符对于原子向量无效”。谷歌搜索发现了另一个人收到了同样的错误(请看这里),但不幸的是没有解决方案。

代码语言:javascript
复制
rm(list = ls())

data(iris)

iris.lm <- lm(formula = Sepal.Length ~ Sepal.Width + Petal.Length , data = iris)
print(anova(object = iris.lm))
print(anova(object = iris.lm , type = "marginal"))
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-20 03:32:27

作为以后的参考,来自包Anova的函数car接受type参数(如"III"3)。此函数不应与标准anova库中的函数R混淆,后者不接受type参数。

票数 4
EN

Stack Overflow用户

发布于 2014-02-20 03:21:27

使用traceback,您可以本地化错误:

代码语言:javascript
复制
print(anova(object = iris.lm , type = "marginal"))
Error: $ operator is invalid for atomic vectors
> traceback()
7: deparse(x$terms[[2L]])
6: FUN(X[[2L]], ...)
5: lapply(objects, function(x) deparse(x$terms[[2L]]))
4: anova.lmlist(object, ...)
3: anova.lm(object = iris.lm, type = "marginal")
2: anova(object = iris.lm, type = "marginal")
1: print(anova(object = iris.lm, type = "marginal"))

因此,您会得到错误,因为您试图在不支持它的对象上调用terms。这将复制错误:

代码语言:javascript
复制
 lapply(list(iris.lm,type='marginal'),terms)
 Error: $ operator is invalid for atomic vectors

或者只是:

代码语言:javascript
复制
terms('marginal')

但你为什么认为这会奏效呢?也许我错过了什么,但我认为没有提到阿诺瓦可以把type作为一个论点。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21897121

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档