Редактировать: пример данных добавлен внизу.
Я хочу объединить несколько матриц, которые я сохранил в иерархическом списке.Иерархический список выглядит примерно так:
Bodies of Water - Sea - Sea vs Sea - DataFrame
- Matrix
- Sea vs Lake - DataFrame
- Matrix
- Sea vs Pond - DataFrame
- Matrix
- Lake - Lake vs Sea - DataFrame
- Matrix
- Lake vs Lake - DataFrame
- Matrix
...
- Pond vs Pond - DataFrame
- Matrix
В конечном итоге я хочу объединить матрицы таким образом, чтобы они выглядели так, чтобы имена представляли собой матрицу чисел, относящуюся к родительской папке, из которой они пришли,Я, конечно, не стремлюсь к буквальной таблице строк.
Sea vs Sea | Sea vs Lake | Sea vs Pond
----------------|--------------|--------------
Lake vs Sea | Lake vs Lake | Lake vs Pond
----------------|--------------|--------------
Pond vs Sea | Pond vs Lake | Pond vs Pond
Однако я не знаю, как это сделать.Поскольку они в порядке, я подумал, что для начала лучше всего создать список или массив матриц:
AllMtx <- 'Bodies of Water'$[[i]]"[["Matrix"]]
или
AllMtx <- list.search('Bodies of Water'$[[i]], all(. == Matrix)
Ни один из которых даже близко не расположенк работе, чему не помогает тот факт, что я изо всех сил пытаюсь заставить list.search
возвращать полные списки, а не просто сохранять каждое значение из объектов с именем "Matrix" в своем собственном элементе в новом списке.
А потом я подумал, что мог бы использовать этот список или массив или что-то еще, что я сделал, объединить команды rbind
и cbind
и получить окончательную матрицу, например,
cbind(
(rbind(AllMtx, 1:3)),
(rbind(AllMtx, 4:6)),
(rbind(AllMtx, 7:9))
)
Я надеялся, что это можетчто-то вроде разумного способа сборки матрицы, сначала скомбинировав '... vs Sea'
, '... vs Lake
'и '... vs Pond'
в строки, прежде чем, наконец, объединить их все вместе, чтобы уместить три столбца.
Конечно, я не наденуЯ не возражаю против того, как получить окончательную матрицу, но объяснение того, что я пытаюсь сделать, часто вызывает полезную обратную связь.
пример матриц:
list(AvsA = structure(c(1, 4, 5, 6, 1, 7, 4, 8, 1), .Dim = c(3L,
3L)), AvsB = structure(c(3, 3, 4, 5, 5, 4, 3, 9, 2), .Dim = c(3L,
3L)), BvsA = structure(c(2, 9, 3, 4, 5, 5, 4, 3, 3), .Dim = c(3L,
3L)), BvsB = structure(c(1, 3, 4, 5, 1, 4, 3, 9, 1), .Dim = c(3L,
3L)))
"V1" "V2" "V3" "V1" "V2" "V3"
"1" 1 6 4 "1" 3 5 3
"2" 4 1 8 "2" 3 5 9
"3" 5 7 1 "3" 4 4 2
"V1" "V2" "V3" "V1" "V2" "V3"
"1" 2 4 4 "1" 1 5 3
"2" 9 5 3 "2" 3 1 9
"3" 3 5 3 "3" 4 4 1
пример окончательной матрицы:
structure(c(1, 4, 5, 3, 3, 4, 6, 1, 7, 5, 5, 4, 4, 8, 1, 3, 9,
2, 2, 9, 3, 1, 3, 4, 4, 5, 5, 5, 1, 4, 4, 3, 3, 3, 9, 1), .Dim = c(6L,
6L))
"V1" "V2" "V3" "V4" "V5" "V6"
"1" 1 6 4 2 4 4
"2" 4 1 8 9 5 3
"3" 5 7 1 3 5 3
"4" 3 5 3 1 5 3
"5" 3 5 9 3 1 9
"6" 4 4 2 4 4 1
Для того, чтобы получитьbove, комбинация rbind
и cbind
оказалась работоспособной.Однако я все еще изо всех сил пытаюсь объединить все мои маленькие «матричные» объекты в список.