首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中,cor和cor.test的区别是什么?

在R中,cor和cor.test的区别是什么?
EN

Stack Overflow用户
提问于 2013-02-02 10:47:11
回答 1查看 8.9K关注 0票数 5

我有一个数据框架,它的列是一个实验的不同样本。我想找出这些样本之间的相关性。因此,样本v2与v3、样本v2与v4、.这是数据框架:

代码语言:javascript
复制
> head(t1)
      V2          V3          V4         V5         V6
1 0.12725011 0.051021886 0.106049328 0.09378767 0.17799444
2 0.86096784 1.263327211 3.073650624 0.75607466 0.92244361
3 0.45791031 0.520207274 1.526476608 0.67499102 0.49817761
4 0.00000000 0.001139721 0.003158557 0.00000000 0.00000000
5 0.13383965 0.098943019 0.099922146 0.13871867 0.09750611
6 0.01016334 0.010187671 0.025410170 0.00000000 0.02369374
> nrow(t1)
[1] 23367

如果我运行这个数据帧的cor函数来获取样本(列)之间的相关性,那么我得到所有样本的NA:

代码语言:javascript
复制
> cor(t1, method= "spearman")
V2 V3 V4 V5 V6
V2  1 NA NA NA NA
V3 NA  1 NA NA NA
V4 NA NA  1 NA NA
V5 NA NA NA  1 NA
V6 NA NA NA NA  1

但如果我负责这个:

代码语言:javascript
复制
> cor.test(t1[,1],t1[,2], method="spearman")$estimate
rho 
0.92394 

这是不同的。为何会这样呢?什么是正确的方法来获得这些样本之间的相关性?提前谢谢你。

EN

回答 1

Stack Overflow用户

发布于 2013-02-02 10:56:50

您的数据包含NA值。

来自?cor

如果使用是“一切”,那么NAs就会在概念上传播,也就是说,当它的贡献之一是NA时,结果值将是NA。

来自?cor.test

na.action是一个函数,它指示当数据包含NAs时应该发生什么。默认为getOption("na.action")。

在我的系统里:

代码语言:javascript
复制
getOption("na.action")
[1] "na.omit"

使用which(!is.finite(t1))搜索有问题的值,使用which(is.na(t1))搜索NA值。如果数据中有cor值,则cor返回Inf

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

https://stackoverflow.com/questions/14661072

复制
相关文章

相似问题

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