对于包含数组格式内矩阵的列表,是否有快速函数来查找连续的列差异?

时间:2018-06-03 07:24:02

标签: r

我有一个包含矩阵数组的3个元素的列表:

> set.seed(1)
> A <- list(replicate(5, matrix(rnorm(22), nrow = 2)), replicate(5, matrix(rnorm(22), nrow = 2)),replicate(5, matrix(rnorm(22), nrow = 2)))
> A
[[1]]
, , 1

           [,1]       [,2]       [,3]      [,4]       [,5]      [,6]       [,7]
[1,] -0.6264538 -0.8356286  0.3295078 0.4874291  0.5757814 1.5117812 -0.6212406
[2,]  0.1836433  1.5952808 -0.8204684 0.7383247 -0.3053884 0.3898432 -2.2146999
            [,8]        [,9]     [,10]     [,11]
[1,]  1.12493092 -0.01619026 0.8212212 0.9189774
[2,] -0.04493361  0.94383621 0.5939013 0.7821363

, , 2

            [,1]        [,2]       [,3]       [,4]       [,5]        [,6]       [,7]
[1,]  0.07456498  0.61982575 -0.1557955 -0.4781501  1.3586796  0.38767161 -1.3770596
[2,] -1.98935170 -0.05612874 -1.4707524  0.4179416 -0.1027877 -0.05380504 -0.4149946
           [,8]      [,9]      [,10]     [,11]
[1,] -0.3942900 1.1000254 -0.1645236 0.6969634
[2,] -0.0593134 0.7631757 -0.2533617 0.5566632
    ......

我想使用一个快速函数进入每个矩阵内,在三个列表元素的每一个内,在每个5个数组中,并按列差异找到连续的列。例如,对于第一个矩阵中的第一个元素,我将获取第一列中的值并从第二列中减去它们。来自:

> A[[1]][,c(1,2),1]
           [,1]       [,2]
[1,] -0.6264538 -0.8356286
[2,]  0.1836433  1.5952808

> diff(t(A[[1]][,c(1,2),1]))
           [,1]     [,2]
[1,] -0.2091748 1.411637

我不确定如何使其快速和可扩展。有没有人有任何想法?

0 个答案:

没有答案