我有一个大矩阵,其中包含从显微镜细胞图像中提取的各种特征。不同的特征分布在整个列上,矩阵行上的单个单元格。然而,测量来自时间间隔显微术,使得每个单独的细胞在该矩阵中具有90行(时间点)。所以这个矩阵的维数[cell_amount * 90; feature_amount。用行集合的值创建矩阵
我的目标是:
- 计算随后的时间点的差为每个小区(时间序列的“衍生物”),然后
- 创建包含的凝聚一个新的矩阵每个单元格的差异(以便新矩阵具有维度[cell_amount; feature_amount])。
我在R中设置了一些代码来测试我的问题,其中有4个单元格,4个特征(列),每个单元格有3个时间点值。所以第一个单元格将在1-3行,第二个在4-6行,等等。从该I计算值的差:
A <- matrix(sample(1:100, 4*12), ncol = 4)
B <- abs(A - dplyr::lag(A))
B[seq(1,nrow(B), 3),] <- NA
这导致其中每个单元的第一行包含NA值的矩阵:
[,1] [,2] [,3] [,4]
[1,] NA NA NA NA
[2,] 82 29 54 22
[3,] 32 44 18 31
[4,] NA NA NA NA
[5,] 22 61 10 33
[6,] 19 64 54 35
[7,] NA NA NA NA
[8,] 59 18 6 10
[9,] 34 47 70 6
[10,] NA NA NA NA
[11,] 60 23 68 22
[12,] 17 13 12 9
含有用于这些值的聚合所得到的矩阵每个单元格在这种情况下的差异应该如下所示:
[,1] [,2] [,3] [,4]
[1,] 1250 112.5 648 40.5
[2,] 4.5 4.5 968 2
[3,] 312.5 420.5 2048 8
[4,] 924.5 50 1568 84.5
如何在R中计算这个新矩阵?任何帮助表示赞赏。
那么这个输入的输出是什么?给你具体的价值观,以便可以对可能的解决方案进行测试? – MrFlick
谢谢您的输入。我重新制定了这个问题并给出了预期的输出矩阵。这些值完全用于测试目的。 – user3182899