web-dev-qa-db-fra.com

Comment combiner deux listes en R

J'ai deux listes:

l1 = list(2, 3)
l2 = list(4)

Je veux une troisième liste:

list(2, 3, 4).

Comment puis-je le faire de manière simple. Bien que je puisse le faire pour la boucle, mais je m'attends à une réponse unique, ou peut-être une méthode intégrée.

En fait, j'ai une liste:
list(list(2, 3), list(2, 4), list(3, 5), list(3, 7), list(5, 6), list(5, 7), list(6, 7)).
Après avoir utilisé list(2, 3) et list(2, 4), je veux list(2, 3, 4).

57
Rohit Singh

c peut être utilisé sur des listes (et pas seulement sur des vecteurs):

# 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

Si vous avez une liste de listes, vous pouvez le faire (peut-être) plus facilement avec do.call, par exemple:

do.call(c, list(l1, l2))
62
Vincent Bonhomme

Nous pouvons utiliser append

append(l1, l2)

Il a également des arguments pour insérer un élément à un endroit particulier.

28
akrun

Je cherchais à faire la même chose, mais pour conserver la liste comme un simple tableau de chaînes, j'ai donc écrit un nouveau code qui, d'après ce que j'ai lu, n'est peut-être pas le plus efficace, mais a fonctionné pour ce que j'avais à faire :

combineListsAsOne <-function(list1, list2){
  n <- c()
  for(x in list1){
    n<-c(n, x)
  }
  for(y in list2){
    n<-c(n, y)
  }
  return(n)
}

Il crée simplement une nouvelle liste et ajoute des éléments à partir de deux listes fournies pour en créer une.

0
John Proestakes