У меня есть список из 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
Я не уверен, как сделать это быстро и масштабируемо.У кого-нибудь есть идеи?