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)
.
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))
Nous pouvons utiliser append
append(l1, l2)
Il a également des arguments pour insérer un élément à un endroit particulier.
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.