How to combine two lists in R
RListR Problem Overview
I have two lists:
l1 = list(2, 3)
l2 = list(4)
I want a third list:
list(2, 3, 4).
How can I do it in simple way. Although I can do it in for loop, but I am expecting a one liner answer, or maybe an in-built method.
Actually, I have a list:
list(list(2, 3), list(2, 4), list(3, 5), list(3, 7), list(5, 6), list(5, 7), list(6, 7)).
After computing on list(2, 3)
and list(2, 4)
, I want list(2, 3, 4)
.
R Solutions
Solution 1 - R
c
can be used on lists (and not only on vectors):
# 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
If you have a list of lists, you can do it (perhaps) more comfortably with do.call
, eg:
do.call(c, list(l1, l2))
Solution 2 - R
We can use append
append(l1, l2)
It also has arguments to insert element at a particular location.
Solution 3 - R
I was looking to do the same thing, but to preserve the list as a just an array of strings so I wrote a new code, which from what I've been reading may not be the most efficient but worked for what i needed to do:
combineListsAsOne <-function(list1, list2){
n <- c()
for(x in list1){
n<-c(n, x)
}
for(y in list2){
n<-c(n, y)
}
return(n)
}
It just creates a new list and adds items from two supplied lists to create one.