Я пытаюсь объединить матрицы.Моя цель на самом деле так же проста, как взять несколько матриц из одного списка, жениться на них и поместить их в новый список.Чтобы обеспечить ясность, позвольте мне предварить это очень простым примером того, что я хочу сделать, используя только две матрицы, которые не вложены в списки:
$Size
[,1] [,2]
[1,] 3 7
[2,] 5 2
$Shape
[,1] [,2]
[1,] 3 7
[2,] 6 5
В конечном итоге будет выглядеть как ...
[,1] [,2] [,3] [,4]
[1,] 3 7 3 7
[2,] 5 2 6 5
Вот более широкий контекст, в котором я пытаюсь это сделать, включая примеры данных.
#Define some important things - for sample data
Fruits = c('Mango', 'Kiwi')
Attr = c('Size', 'Shape')
#generate empty lists - for sample data
MyFruitList <- lapply(Fruits, function(q) {
EmptySublist <- (setNames(vector("list", length(Fruits)), Attr))
})
names(MyFruitList) <- Fruits
#Fill lists with example matrices - for sample data
MyFruitList[['Mango']][['Size']] <- matrix(c(3,5,7,2), nrow=2, ncol=2)
MyFruitList[['Mango']][['Shape']] <- matrix(c(3,6,7,5), nrow=2, ncol=2)
MyFruitList[['Kiwi']][['Size']] <- matrix(c(1,3,4,2), nrow=2, ncol=2)
MyFruitList[['Kiwi']][['Shape']] <- matrix(c(2,4,5,1), nrow=2, ncol=2)
#Now Lets create those new matrices! - The thing I'm trying to
#achieve with my actual data
MyFruitListAsRows <- lapply(Fruits, function(i) {
MyFruitListAsRows <- map(MyFruitList[i], bind_cols)
})
names(MyFruitListAsRows) <- paste0(Fruits, "Row")
И на первый взгляд кажется, что все работает.Но когда я проверяю матрицу, например,
MyFruitListAsRows[['MangoRow']]
Я получаю эту ошибку:
Error in x[i, , drop = FALSE] : subscript out of bounds
Если я попытаюсь заставить RStudio показать мне окно, связанное с этой проблемной матрицей, онопрямо падает