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,以便我可以存储它们以供进一步分析?
发布于 2011-07-10 14:46:30
您可以使用测试对象的$
子集。相关的名称是p.value
和estimate
。
> 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
编辑
其他答案指出,您可以使用str
调查对象的结构,以找到要与$
子集一起使用的名称。您还可以使用names
查找名称
> names(tst)
[1] "statistic" "parameter" "p.value" "estimate" "null.value"
[6] "alternative" "method" "data.name"
另一件要考虑的事情是,您正在查看对象的打印版本,而print方法可能正在执行一些计算(在本例中不是这样)。您可以使用class(tst)
检查对象类,这表明它属于htest
类。print.htest
是相关的打印方法,但这是不可见的,因此请使用getAnywhere(print.htest)
查看它。
发布于 2011-07-10 14:51:45
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"
其中任何一个都可以通过使用$ notation获得。如果您正在寻找获取p.value,请使用以下内容:
test.res$p.value
发布于 2011-07-10 13:56:05
test.res <- cor.test(x,y,method="spearman", exact=F)
test.res[1:8]
你要找的东西就在里面。
对于特定值,添加另一个索引前缀,如下所示:
test.res[1][1]
为了找到一个特定的元素,你可以用str(test.res)
来找到它的位置,然后在上面的test.res[1][5]
中进行替换
https://stackoverflow.com/questions/6639424
复制相似问题