将一个矩阵列表重新缩放到另一个

Rescale one list of matrices to another

我有两个这样的 2 列矩阵列表:

> stck.list
[[1]]
             [,1]         [,2]
[1,]  0.000000000  0.000000000
[2,]  0.001082767 -0.008137698
[3,] -0.005346008  0.013462373
[4,]  0.012179531  0.046037670
[5,]  0.035469135  0.033196833

[[2]]
             [,1]         [,2]
[1,]  0.000000000 0.0000000000
[2,]  0.004100097 0.0001743182
[3,]  0.001005368 0.0008254498
[4,]  0.011574428 0.0077799754
[5,] -0.006285223 0.0063603749

> stck.list.2
[[1]]
            [,1]         [,2]
[1,] 0.000000000  0.000000000
[2,] 0.003678552  0.009008164
[3,] 0.007416574  0.003603477
[4,] 0.005194380 -0.004445452
[5,] 0.002181469 -0.005857811

[[2]]
              [,1]          [,2]
[1,]  0.0000000000  0.0000000000
[2,]  0.0020240535 -0.0011925407
[3,] -0.0003965362  0.0013492189
[4,]  0.0053106932  0.0001212016
[5,]  0.0023810324  0.0054779249

而且我需要将第一个列表的第一个矩阵的第一列的值重新缩放到第二个列表的第一个矩阵的第一列,e.t.c。 手动我可以为一个矩阵的每一列分别做它:

sc_x.1 <- scales::rescale(stck.list[[1]][,1], to = range(stck.list.2[[1]][,1]))
sc_y.1 <- scales::rescale(stck.list[[1]][,2], to = range(stck.list.2[[1]][,2]))

这是真的吗? 因此,主要目标是在相应轴上的两个列表中绘制每个相应矩阵。也许有更简单的方法来做到这一点?

我们可以使用地图

Map(function(x, y) scales::rescale(x, to = range(y)) , stck.list, stck.list.2)