框架看起来像这样:
Col1 Col2 Col3
0 3 25
45 0 0
0 0 12
我想计算元素之间的相关索引,只有当两个元素是!=从0时,因为在我的情况下0是“不提供信息的项目”所以计算一个没有意义 ex:3之间的相关性是信息性的,而0是没有信息的。 我无法删除包含0个元素的列,因为我的data.frame中0个元素是稀疏的。
有人能帮帮我吗?
答案 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