的您正在尋找的是什麼use = "pairwise.complete.obs"
在cor
一半:
如果use
的值爲「pairwise.complete.obs」則相關或每對變量之間的協方差 使用所有計算 完整的對這些變量的觀察。
但是,它需要有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