1

次のようなフレーム:

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

2 つの要素が != from 0 である場合にのみ、要素間の相関インデックスを計算したいと思います。私の場合、0 は「有益な項目ではない」ため、for ex: 3 と 0 の間の相関を計算する意味がありません。それは有益ではありません。

私のdata.frameで0要素がまばらであるため、0要素を含む列を削除できません。

4

1 に答える 1

3

あなたが探しているものの半分は次の場所にあり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
于 2013-07-16T18:28:07.690 に答える