私は4つのテーブルを持っています。それぞれに4行4列があります。以下は4つの表です。
1番目のテーブルの場合、
t1 <- array(1:20, dim=c(4,4))
[,1] [,2] [,3] [,4]
[1,] 1 5 9 13
[2,] 2 6 10 14
[3,] 3 7 11 15
[4,] 4 8 12 16
2番目のテーブルの場合、
t2 <- array(6:25, dim=c(4,4))
[,1] [,2] [,3] [,4]
[1,] 6 10 14 18
[2,] 7 11 15 19
[3,] 8 12 16 20
[4,] 9 13 17 21
3番目のテーブルの場合、
t3 <- array(11:30, dim=c(4,4))
[,1] [,2] [,3] [,4]
[1,] 11 15 19 23
[2,] 12 16 20 24
[3,] 13 17 21 25
[4,] 14 18 22 26
4番目のテーブルの場合、
t4 <- array(21:30, dim=c(4,4))
[,1] [,2] [,3] [,4]
[1,] 21 25 29 23
[2,] 22 26 30 24
[3,] 23 27 21 25
[4,] 24 28 22 26
テーブルごとに、y値の固定セットを取得しました。
t1 = 0.1
t2 = 3
t4 = 0.5
t6 = 7
言い換えると:
y <- c( 0.1, 3, 0.75, 7)
次に、4つのテーブルの各セルからx値を抽出します。つまり、[1,1]セルの場合、抽出されるx値は(0.1、3、0.5、7)である必要があります。テーブルの最後、つまり[4,4]セルまで、この手順を1つずつ繰り返します。したがって、次のように合計16セットのx値を取得しました。
cell x-values
[1,1] (1,6,11,21)
[1,2] (5,10,15,25)
…..
[4,4] (16, 21,26,26)
次に、各yxペアの線形回帰のR2を計算しようとします。つまり、次のように合計16個のR2値を取得したいと思います。
For [1,1] cell, linear regression between (0.1, 3, 0.5, 7) and (1,6,11,21) = 0.6853
For [1,2] cell, linear regression between (0.1, 3, 0.5, 7) and (5,10,15,25) = 0.6853
…..
For [4,4] cell, linear regression between (0.1, 3, 0.5, 7) and (16, 21,26,26) = 0.2719
最後に、次の2つの列を持つテーブルを取得したいと思います
cell R2
[1,1] 0.6853
[1,2] 0.6853
….
[4,4] 0.2719
xおよびy系列のデータに対して線形回帰を行うには、次のコマンドを使用できることを学びました。
Rcoefficient <- summary(lm(y ~ x, data=faithful))$r.squared
ただし、4つのテーブルからx値の各セットを読み込むのに問題があります。reshapeを使おうとしましたが、それでもうまくいきません。Stackoverflowの専門家は、Rでそれを行うための効率的な方法を提案するのに役立ちます。私の実際のテーブルは非常に大きく、1000を超える列と行があるためです。
どうもありがとう。