1

我正在一个大型数据集(3500 obs x 1000 var)上运行相关性。我面临的问题是大量缺失数据,我只想包括满足特定条件的成对观察。

在一对向量具有 1 个 NA 值和 1 个数值的情况下,如下面的第 1 行第 1 列和第 3 列所示,我想将 NA 转换为 0 并将其包含在相关性中。其中一对中的两个项目都是 NA,如下面的第 2 行第 1 列和第 3 列所示,我希望将这些从计算中删除。

      [,1] [,2] [,3]  
[1,]    2  1.5   NA
[2,]   NA  2.0   NA
[3,]    0  0.0    0
[4,]    1  1.0    1
[5,]    2  2.0    2

我研究了可用的方法,例如cor(x, use="pairwise.complete.obs")cor(x, use="complete.obs")

不幸的是,上面的方法不能解决我的问题。

我能够通过将每一对放入一个新的 data.frame 变量中来解决这个问题,创建一组条件来过滤掉不需要的观察结果,然后对该对运行相关性。但是,即使我把它放在一个循环中,它也是一个非常笨重的过程。我希望找到一种更好、更简单的方法来解决这个问题。任何帮助是极大的赞赏。

4

0 回答 0