How to combine two lists in R

RList

R 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.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionRohit SinghView Question on Stackoverflow
Solution 1 - RVincent BonhommeView Answer on Stackoverflow
Solution 2 - RakrunView Answer on Stackoverflow
Solution 3 - RJohn ProestakesView Answer on Stackoverflow