从任何统计测试中获取单个值(例如Spearman Rho值从cor.test)

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (17)

R中的统计测试输出了许多描述。虽然它们是有用的,但我们如何才能输出或提取单个值呢?

> cor.test(x,y,method="spearman", exact=F)

        Spearman's rank correlation rho

data:  x and y 
S = 12767993, p-value = 0.0001517
alternative hypothesis: true rho is not equal to 0 
sample estimates:
      rho 
-0.188074 

特别是,如何才能得到这些值0.0001517-0.188074这样我就能把它们储存起来做进一步的分析了?

提问于
用户回答回答于

你可以用$对测试对象进行子设置。有关名称如下p.valueestimate

> tst<-cor.test(1:10,rnorm(10),method="spearman")
> tst

        Spearman's rank correlation rho

data:  1:10 and rnorm(10) 
S = 140, p-value = 0.6818
alternative hypothesis: true rho is not equal to 0 
sample estimates:
      rho 
0.1515152 

...

> tst$p.value
[1] 0.6818076
> tst$estimate
      rho 
0.1515152 

用户回答回答于
test.res <- cor.test(x,y,method="spearman", exact=F)

使用str(test.res)查看对象的结构

> str(test.res)
List of 8
 $ statistic  : Named num 182
  ..- attr(*, "names")= chr "S"
 $ parameter  : NULL
 $ p.value    : num 0.785
 $ estimate   : Named num -0.103
  ..- attr(*, "names")= chr "rho"
 $ null.value : Named num 0
  ..- attr(*, "names")= chr "rho"
 $ alternative: chr "two.sided"
 $ method     : chr "Spearman's rank correlation rho"
 $ data.name  : chr "1:10 and rnorm(10)"
 - attr(*, "class")= chr "htest"

其中任何一种都可以通过使用$表示法获得。如果要获取p.value,请使用以下命令:

test.res$p.value

扫码关注云+社区