Для списка с матрицами в формате массива существует ли быстрая функция для нахождения последовательных различий в столбцах? - PullRequest
0 голосов
/ 03 июня 2018

У меня есть список из 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

Я не уверен, как сделать это быстро и масштабируемо.У кого-нибудь есть идеи?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...