首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >从任何统计测试中获取单个值(例如,来自cor.test的spearman rho的值)

从任何统计测试中获取单个值(例如,来自cor.test的spearman rho的值)
EN

Stack Overflow用户
提问于 2011-07-10 13:38:00
回答 3查看 14K关注 0票数 17

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

代码语言:javascript
复制
> 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,以便我可以存储它们以供进一步分析?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-07-10 14:46:30

您可以使用测试对象的$子集。相关的名称是p.valueestimate

代码语言:javascript
复制
> 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 

代码语言:javascript
复制
> tst$p.value
[1] 0.6818076
> tst$estimate
      rho 
0.1515152 

编辑

其他答案指出,您可以使用str调查对象的结构,以找到要与$子集一起使用的名称。您还可以使用names查找名称

代码语言:javascript
复制
> names(tst)
[1] "statistic"   "parameter"   "p.value"     "estimate"    "null.value" 
[6] "alternative" "method"      "data.name" 

另一件要考虑的事情是,您正在查看对象的打印版本,而print方法可能正在执行一些计算(在本例中不是这样)。您可以使用class(tst)检查对象类,这表明它属于htest类。print.htest是相关的打印方法,但这是不可见的,因此请使用getAnywhere(print.htest)查看它。

票数 30
EN

Stack Overflow用户

发布于 2011-07-10 14:51:45

代码语言:javascript
复制
test.res <- cor.test(x,y,method="spearman", exact=F)

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

代码语言:javascript
复制
> 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"

其中任何一个都可以通过使用$ notation获得。如果您正在寻找获取p.value,请使用以下内容:

代码语言:javascript
复制
test.res$p.value
票数 18
EN

Stack Overflow用户

发布于 2011-07-10 13:56:05

代码语言:javascript
复制
test.res <- cor.test(x,y,method="spearman", exact=F)
test.res[1:8]

你要找的东西就在里面。

对于特定值,添加另一个索引前缀,如下所示:

代码语言:javascript
复制
test.res[1][1]

为了找到一个特定的元素,你可以用str(test.res)来找到它的位置,然后在上面的test.res[1][5]中进行替换

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

https://stackoverflow.com/questions/6639424

复制
相关文章

相似问题

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