При попытке соединить матрицы попытка приводит к ошибке «за пределами».(р) - PullRequest
0 голосов
/ 21 апреля 2019

Я пытаюсь объединить матрицы.Моя цель на самом деле так же проста, как взять несколько матриц из одного списка, жениться на них и поместить их в новый список.Чтобы обеспечить ясность, позвольте мне предварить это очень простым примером того, что я хочу сделать, используя только две матрицы, которые не вложены в списки:

$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 показать мне окно, связанное с этой проблемной матрицей, онопрямо падает

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