首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何获取pvalue列表?

如何获取pvalue列表?
EN

Stack Overflow用户
提问于 2013-03-26 22:40:49
回答 2查看 6.9K关注 0票数 5

我执行了wilcox测试,现在我想将p.value提取到一个列表或矩阵中。

代码语言:javascript
复制
DF <- data.frame(A1=sample(1:9, 10, T),
                     A2=sample(1:9, 10, T),
                     A3=sample(1:9, 10, T),
                     B1=sample(1:9, 10, T),
                     B2=sample(1:9, 10, T),
                     B3=sample(1:9, 10, T))


sampA <- DF[,grep('A', names(DF))]  # Sample with columns A
sampB <- DF[,grep('B', names(DF))]  # Sample with columns B


lapply(1:nrow(DF), function(i){
  wilcox.test(as.numeric(sampA[i,]), as.numeric(sampB[i,]), exact=FALSE )
}) 

每行的wilcox测试结果如下:我想知道如何将列表或矩阵中的p.value导出到excel文件?[1]

代码语言:javascript
复制
    Wilcoxon rank sum test with continuity correction

data:  as.numeric(sampA[i, ]) and as.numeric(sampB[i, ]) 
W = 3, p-value = 0.6579
alternative hypothesis: true location shift is not equal to 0 


[[2]]

    Wilcoxon rank sum test with continuity correction

data:  as.numeric(sampA[i, ]) and as.numeric(sampB[i, ]) 
W = 0, p-value = 0.0722
alternative hypothesis: true location shift is not equal to 0 


[[3]]

    Wilcoxon rank sum test with continuity correction

data:  as.numeric(sampA[i, ]) and as.numeric(sampB[i, ]) 
W = 6, p-value = 0.6579
alternative hypothesis: true location shift is not equal to 0 
EN

回答 2

Stack Overflow用户

发布于 2013-03-26 22:43:58

只需添加$p.value即可从wilcox.test对象中提取p.value:

代码语言:javascript
复制
lapply(1:nrow(DF), function(i){
  wilcox.test(as.numeric(sampA[i,]), as.numeric(sampB[i,]), exact=FALSE )$p.value
}) 

这就给出了:

代码语言:javascript
复制
[[1]]
[1] 1

[[2]]
[1] 1

[[3]]
[1] 0.8247781

[[4]]
[1] 0.8247781

通过使用sapply而不是lapply,您将获得一个向量而不是一个列表,这将更容易操作。

代码语言:javascript
复制
sapply(1:nrow(DF), function(i){
  wilcox.test(as.numeric(sampA[i,]), as.numeric(sampB[i,]), exact=FALSE )$p.value
}) 

# [1] 1.0000000 1.0000000 0.8247781 0.8247781 0.0765225 0.8247781 1.0000000
# [8] 0.8247781 0.2682859 0.0765225
票数 11
EN

Stack Overflow用户

发布于 2013-03-26 22:45:00

使用sapply并引用p.value名称...

代码语言:javascript
复制
sapply(1:nrow(DF), function(i){wilcox.test(as.numeric(sampA[i,]), as.numeric(sampB[i,]), exact=FALSE )$p.value})

#[1] 0.8247781 0.0765225 0.8247781 1.0000000 0.2682859 0.6625206 1.0000000
#[8] 0.1211833 0.5065552 0.8247781

这将返回一个向量而不是列表(我通常认为向量更容易处理,例如,因为您不能使用mylist[[1:5]]对列表进行索引,但是您可以使用myvector[1:5],但这是个人喜好

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

https://stackoverflow.com/questions/15639855

复制
相关文章

相似问题

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