Как объединить два списка в R
У меня есть два списка:
l1 = list(2, 3)
l2 = list(4)
Мне нужен третий список:
list(2, 3, 4).
Как я могу сделать это простым способом.
Хотя я могу сделать это для цикла, но я ожидаю ответа одного лайнера или, может быть, встроенного метода.
Собственно, у меня есть список:
list(list(2, 3), list(2, 4), list(3, 5), list(3, 7), list(5, 6), list(5, 7), list(6, 7)).
После вычисления на list(2, 3)
и list(2, 4)
я хочу list(2, 3, 4)
.
Ответы
Ответ 1
c
может использоваться в списках (и не только в векторах):
# you have
l1 = list(2, 3)
l2 = list(4)
# you want
list(2, 3, 4)
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
# you can do
c(l1, l2)
[[1]]
[1] 2
[[2]]
[1] 3
[[3]]
[1] 4
Если у вас есть список списков, вы можете сделать это (возможно) более удобно с помощью do.call
, например:
do.call(c, list(l1, l2))
Ответ 2
Мы можем использовать append
append(l1, l2)
В нем также есть аргументы для вставки элемента в определенном месте.
Ответ 3
Я пытался сделать то же самое, но сохранить список как просто массив строк, поэтому я написал новый код, который из того, что я читал, может быть не самым эффективным, но работал для того, что мне нужно было сделать:
combineListsAsOne <-function(list1, list2){
n <- c()
for(x in list1){
n<-c(n, x)
}
for(y in list2){
n<-c(n, y)
}
return(n)
}
Он просто создает новый список и добавляет элементы из двух предоставленных списков, чтобы создать один.