R: преобразовать выходную матрицу JAGS в массив на основе имен столбцов - PullRequest
0 голосов
/ 21 июня 2019

В R у меня есть вывод модели JAGS (выполненный параллельно с jags.parfit из пакета dclone), который представляет собой список из шести двумерных матриц (соответствующих шести цепочкам с 3000 повторениями в каждой) с именами столбцов эквивалентно индексам массива. Первая цифра имеет 3 уникальных значения, вторая 2000, третья 4 и четвертая 6.

head(colnames(m1[[1]]))
[1] "y.pred[1,1,1,1]" "y.pred[2,1,1,1]" "y.pred[3,1,1,1]" "y.pred[1,2,1,1]" "y.pred[2,2,1,1]" "y.pred[3,2,1,1]"

Я хочу преобразовать эту длинную матрицу в массив с 5 измерениями, которые соответствуют 3000 повторениям в виде строки и 4 индексам из имен столбцов в качестве новых столбцов. Этот массив будет иметь следующие размеры:

dim(m1.array)
[1]    3000    3 2000    4    6

Есть ли относительно простой способ сделать это?

UPDATE

Основываясь на предложении ниже, я смог преобразовать каждую матрицу в ожидаемый массив с помощью следующего кода:

m1.arrayList <- lapply(m1, function(x) array(x, dim = c(3000, 3, 2000, 4, 6)))

Затем я смог преобразовать список 5-dim массивов в 6-dim массив с помощью:

m1.array <- simplify2array(m1.arrayList)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...