首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将重要性列与r中的摘要(aov())隔离开来

将重要性列与r中的摘要(aov())隔离开来
EN

Stack Overflow用户
提问于 2013-03-20 17:39:16
回答 3查看 1.5K关注 0票数 5

如何隔离汇总中的重要性列(aov())以预安装的data warpbreaks为例...

代码语言:javascript
运行
复制
> a<-summary(aov(breaks~wool*tension,data=warpbreaks))
> a
             Df Sum Sq Mean Sq F value   Pr(>F)    
wool          1    451   450.7   3.765 0.058213 .  
tension       2   2034  1017.1   8.498 0.000693 ***
wool:tension  2   1003   501.4   4.189 0.021044 *  
Residuals    48   5745   119.7                     
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

> somefunction(a)[,6]

1     .  
2     ***
3     *
4     
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-03-20 17:56:34

代码语言:javascript
运行
复制
# Extract the p-values
pvals <- a[[1]][["Pr(>F)"]]

# Use the symnum function to produce the symbols
sigSymbols <- symnum(pvals, na = FALSE, 
                     cutpoints = c(0, 0.001, 0.01, 0.05, 0.1, 1), 
                     symbols = c("***", "**", "*", ".", " "))

这将返回一个具有属性的向量:

代码语言:javascript
运行
复制
> sigSymbols
[1] .   *** *      
attr(,"legend")
[1] 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

如果不需要legend属性,可以在symnum函数中使用参数legend = FALSE

票数 6
EN

Stack Overflow用户

发布于 2013-03-20 17:49:29

我找不到/想不到直接的方法,所以我创建了自己的方法。我提取数据帧的最后一列,即Pr(>F)

代码语言:javascript
运行
复制
p = a[[1]][,5]

去掉最后一个值,因为它是空的:

代码语言:javascript
运行
复制
p = p[-length(p)]

然后算出了代码:

代码语言:javascript
运行
复制
stars = findInterval(p, c(0, 0.001, 0.01, 0.05, 0.1,))
codes = c("***" , "**","*", ".", " ")
codes[stars]

当然,如果你愿意,你可以把它放入一个函数中。

代码语言:javascript
运行
复制
 get_stars = function(p) {
         stars = findInterval(p, c(0, 0.001, 0.01, 0.05, 0.1))
         codes = c("***" , "**","*", ".", " ")
         codes[stars]
     }

示例

代码语言:javascript
运行
复制
R> p = c(0.0005, 0.005, 0.025, 0.075, 0.5)
R> get_stars(p)
[1] "***" "**"  "*"   "."   " "  
票数 4
EN

Stack Overflow用户

发布于 2015-07-19 03:22:49

上面描述的提取p值的方法对我不起作用,因为我的模型包含了一个误差项。我已经成功地使用了以下内容:

代码语言:javascript
运行
复制
test.summary <- summary(aov(dv ~ iv1 + Error(grouping.factor / iv1 ), data = df))
p <- test.summary[[2]][[1]][["Pr(>F)"]][1]

[["Pr(>F)"]]之后添加[1]只提取p值,而不提取它后面的null值。

此外,@csgillespie,您的代码在向量中的最后一个元素后包含一个额外的逗号,因此R期望在0.1之后有一个参数

代码语言:javascript
运行
复制
stars = findInterval(p, c(0, 0.001, 0.01, 0.05, 0.1,))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15519882

复制
相关文章

相似问题

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