-3

各ソース (1,...,n) の 3 つの異なる変数 (Correlation1、Correlation2、Correlation 3) 間の相関関係を示すテーブルがあります。ただし、すべてのソースがすべての相関関係を報告しているわけではありません。

ここで、これらの相関のどれがどのソースで与えられているかを示すマトリックスを作成したいと考えています。指標行列の行数は、NA を除いた相関テーブルで与えられた値の総数と等しくなければなりません。指標は常に対角線上にあり、この位置での対応する相関が与えられると「1」に設定されます。

私の問題を簡単な例にまとめました。

ここに画像の説明を入力

ここで、ソース 1 には最初の相関が含まれているため、対角線の最初の値は「1」に設定され、他のすべての要素は「0」に設定されます。同じことがソース 2 にも示されています。ソース 3 は 3 つの相関関係をすべて報告しているため、3 行目の最初の値は「1」に設定され、4 行目の 2 番目の要素も「1」に設定され、3 番目の値は5行目は「1」に設定されています。等々....

R の相関行列を指定して、この指標行列を作成する方法を考えていますか?

4

1 に答える 1

0

これはうまくいくかもしれません:

 > df <- matrix(rnorm(18),6,3)
    > df[4,1] <- NA
    > df[3,2] <- NA
    > df[6,3] <- NA

> df
            [,1]        [,2]       [,3]
[1,]  0.59299285  0.47057987  1.5362658
[2,] -1.06073361  0.03898895 -0.3732643
[3,]  0.35102152          NA  0.7484060
[4,]          NA  0.58117835 -0.4967971
[5,]  0.09878368 -0.71531458  1.4571918
[6,] -0.86293568 -0.07522243         NA

主な機能はis.na. 残り:as.numericなど、お好きな形に変えてください。

> idmat <-  1-matrix(as.numeric(is.na(df)),6,3)
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    1    1    1
[3,]    1    0    1
[4,]    0    1    1
[5,]    1    1    1
[6,]    1    1    0

編集: @Ferdinand が指摘するように、次のほうが簡単です。

> idmat <- 1-is.na(df)
     [,1] [,2] [,3]
[1,]    1    1    1
[2,]    1    1    1
[3,]    1    0    1
[4,]    0    1    1
[5,]    1    1    1
[6,]    1    1    0
于 2013-09-11T15:32:47.740 に答える