Cancatenate много списка, где элементы имеют одинаковую длину - PullRequest
0 голосов
/ 11 января 2019

Предположим, у меня есть три списка:

List1 <- list(c(1,2,3),c('A','B','C','D'),c(0,2))
List2 <- list(c(5,6,7),c('AA','BB','CC','DD'),c(1,5))
List3 <- list(c(1,1,1),c('F','G','H','E'),c(0,6))

Необходимый результат должен быть в виде:

List
[[1]]
1 5 1
2 6 1
3 7 1

[[2]]
'A' 'AA' 'F'
'B' 'BB' 'G'
'C' 'CC' 'H'
'D' 'DD' 'E'

[[3]]
0 2
1 5
0 6

Я пытался использовать cbind (List1, List2, List3), но он не дает нужного результата.

Как я могу решить это?

Ответы [ 2 ]

0 голосов
/ 11 января 2019

Вы можете сделать:

mapply(cbind, List1, List2, List3)

[[1]]
     [,1] [,2] [,3]
[1,]    1    5    1
[2,]    2    6    1
[3,]    3    7    1

[[2]]
     [,1] [,2] [,3]
[1,] "A"  "AA" "F" 
[2,] "B"  "BB" "G" 
[3,] "C"  "CC" "H" 
[4,] "D"  "DD" "E" 

[[3]]
     [,1] [,2] [,3]
[1,]    0    1    0
[2,]    2    5    6
0 голосов
/ 11 января 2019

Мы можем объекты с именами List, за которыми следуют числа в list, transpose (из purrr) и преобразовать его в tibble или data.frame

library(tidyverse)
mget(paste0("List", 1:3)) %>% 
     transpose %>% 
     map(as_tibble)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...