我有四张桌子。他们每个人都有 4 行和 4 列。以下是四张表。
对于第一张桌子,
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
对于第二张桌子,
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
对于第三张桌子,
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
对于第四张桌子,
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)
然后,我想从四个表中的每个单元格中提取 x 值。对于 [1,1] 单元格,提取的 x 值应为 (0.1, 3, 0.5, 7)。我们一步一步地重复这个步骤,直到表格的末尾,即[4,4]单元格。因此,我总共得到了 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
最后,我想得到一个包含以下两列的表
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
但是,我无法从四个表中读取每组 x 值。我尝试使用 reshape,但仍然无法正确使用。Stackoverflow 的专家能否帮助建议一种使用 R 的有效方法,因为我的真实表非常大,有超过 1000 列和行。
非常感谢。