【发布时间】:2025-12-19 04:10:07
【问题描述】:
我有两组矩阵。每个矩阵的维度为 100x100,我有 240 个(假设每个矩阵是在一个月内收集的,我有一个由 240 个月的 100x100 矩阵组成的数据集)。
矩阵中的值范围从 1 到 15,代表植被类型(草、热带森林、苔原等)。
我的第一组矩阵m1 是我的对照实验。我的第二组矩阵m2 是一个气候变化实验,其中气候变化会引起矩阵值的变化。
因此,数据表示如下:
m1:240 个 100x100 矩阵的集合,每个矩阵对应一个月(因此有 240 个月的数据)。这是我的控制数据
m2:与m1相同,但由于气候的一些变化,数值有所不同。这是我的实验数据。
这是一些数据:
# generate dataset 1
set.seed(4)
someData1 <- round(runif(100 * 100 * 240, min=1, max=15),digits=0)
# generate dataset2
set.seed(5)
someData2 <- round(runif(100 * 100 * 240, min=1, max=15),digits=0)
# create matrices
k = 240; n=100; m = 100
m1 <- array(someData1, c(n,m,k))
m2 <- array(someData2, c(n,m,k))
我想做的是以这种方式比较m2 相对于m1 的每个单元格:
- 值不同吗?是/否
- 如果是,有什么变化?例如 1 到 10,或 2 到 7 等等。
相对于m1 中的所有 240 个矩阵,对m2 中的所有 240 个矩阵执行相同操作。
到最后,我希望能够:
- 有一个二进制矩阵来显示值是否发生了变化;
- 有一个表格,其中包含每个类别的变化频率(即 1 到 10、2 到 7 等)。
从概念上讲,我需要实现的是这样的:
为简单起见,我绘制了 5x5 矩阵而不是 100x100 矩阵。
如何在 R 中实现这一点?
【问题讨论】:
-
@NealFultz 不,我感兴趣的不是差异的大小。相反,我想知道植被是否从热带森林 (1) 变为大草原 (5)。请注意,在这种情况下,知道差异并不意味着什么。