非0元素的相关计算

时间:2013-07-16 18:05:18

标签: r

框架看起来像这样:

Col1     Col2    Col3     
 0        3      25     
 45       0      0
 0        0      12

我想计算元素之间的相关索引,只有当两个元素是!=从0时,因为在我的情况下0是“不提供信息的项目”所以计算一个没有意义 ex:3之间的相关性是信息性的,而0是没有信息的。 我无法删除包含0个元素的列,因为我的data.frame中0个元素是稀疏的。

有人能帮帮我吗?

1 个答案:

答案 0 :(得分:3)

您要查找的内容的一半是use = "pairwise.complete.obs"中的cor

  

如果use的值为“pairwise.complete.obs”,那么相关性或   使用all计算每对变量之间的协方差   完成对这些变量的完整观察。

但是,它需要NA值而不是零,所以让我们先转换数据:

data <- data.frame(x = c(1, 0, -1, 0, 1),
                 y = c(-1, 0, 1, -1, 0),
                 z = c(0, 0, 1, -1, -1))
data
#    x  y  z
# 1  1 -1  0
# 2  0  0  0
# 3 -1  1  1
# 4  0 -1 -1
# 5  1  0 -1

tempData <- data
tempData[tempData == 0] <- NA
tempData
#    x  y  z
# 1  1 -1 NA
# 2 NA NA NA
# 3 -1  1  1
# 4 NA -1 -1
# 5  1 NA -1

最后:

cor(tempData, use = "pairwise.complete.obs")
#    x  y  z
# x  1 -1 -1
# y -1  1  1
# z -1  1  1