我尝试使用存储在 R 中另一个查找表 (.csv) 中的信息来聚合一个大矩阵 (.csv)。
An example of the large matrix:
z1 z2 z3 z4 z5 z6 z7 z8
z1 1 1 1 1 1 1 1 1
z2 2 2 2 2 2 2 2 2
z3 3 3 3 3 3 3 3 3
z4 0 0 0 0 0 0 0 0
z5 1 1 1 1 1 1 1 1
z6 2 2 2 2 2 2 2 2
z7 1 1 1 1 1 1 1 1
z8 0 0 0 0 0 0 0 0
我有一个查找表告诉我哪些区域要聚合在一起,例如:
old new
z1 D1
z2 D1
z3 D1
z4 D4
z5 D4
z6 D6
z7 D7
z8 D7
这意味着我需要将 z1、z2、z3 聚合到一个组中。z4 和 z5 进入另一个组,依此类推...
基于这个查找表,我将创建一个如下所示的新矩阵:
D1 D4 D6 D7
D1 18 12 6 12
D4 3 2 1 2
D6 6 4 2 4
D7 3 2 1 2
这是通过根据查找表将原始矩阵中的元素按如下所示的块求和来完成的:
z1 z2 z3 z4 z5 z6 z7 z8
z1 1 1 1 1 1 1 1 1
z2 2 2 2 2 2 2 2 2
z3 3 3 3 3 3 3 3 3
z4 0 0 0 0 0 0 0 0
z5 1 1 1 1 1 1 1 1
z6 2 2 2 2 2 2 2 2
z7 1 1 1 1 1 1 1 1
z8 0 0 0 0 0 0 0 0
我很想知道如何在 R 中有效地做到这一点。非常感谢。