我正在一个大型数据集(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 变量中来解决这个问题,创建一组条件来过滤掉不需要的观察结果,然后对该对运行相关性。但是,即使我把它放在一个循环中,它也是一个非常笨重的过程。我希望找到一种更好、更简单的方法来解决这个问题。任何帮助是极大的赞赏。