Я хочу выбрать столбцы из списка матриц разного измерения, используя список булевых векторов, которые представляют столбцы каждой матрицы.
Я пробовал разные комбинации map
и (s|l)apply
, даже классические циклы for
, но мне не удалось выбрать столбцы.
С помощью этого кода вы можете сгенерировать список матриц и булевых векторов для эксперимента:
matrices <- list(matrix(c(7,8,9,10), nrow=1), matrix(c(7,8,7,9,7,10,8,9,8,10,9,10), nrow=2), matrix(c(7,8,9,7,8,10,7,9,10,8,9,10), nrow=3))
listOfColumns <- list(c(FALSE,FALSE,FALSE,FALSE), c(FALSE,FALSE,FALSE,FALSE,FALSE,FALSE), c(TRUE,FALSE,FALSE,FALSE))
В качестве примера, имея список матриц, созданных с помощью вышеуказанного кода:
[[1]]
[,1] [,2] [,3] [,4]
[1,] 7 8 9 10
[[2]]
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 7 7 7 8 8 9
[2,] 8 9 10 9 10 10
[[3]]
[,1] [,2] [,3] [,4]
[1,] 7 7 7 8
[2,] 8 8 9 9
[3,] 9 10 10 10
и список булевых векторов:
[[1]]
[1] FALSE FALSE FALSE FALSE
[[2]]
[1] FALSE FALSE FALSE FALSE FALSE FALSE
[[3]]
[1] TRUE FALSE FALSE FALSE
Результатом должен быть список с одним элементом:
[[1]]
[1] 7 8 9