J'ai deux listes
first = list(a = 1, b = 2, c = 3)
second = list(a = 2, b = 3, c = 4)
Je veux fusionner ces deux listes pour que le produit final soit
$a
[1] 1 2
$b
[1] 2 3
$c
[1] 3 4
Y a-t-il une fonction simple pour faire cela ?
J'ai deux listes
first = list(a = 1, b = 2, c = 3)
second = list(a = 2, b = 3, c = 4)
Je veux fusionner ces deux listes pour que le produit final soit
$a
[1] 1 2
$b
[1] 2 3
$c
[1] 3 4
Y a-t-il une fonction simple pour faire cela ?
En général, on pourrait,
merge_list <- function(...) by(v<-unlist(c(...)),names(v),base::c)
Notez que la solution by()
renvoie une liste attributée
, donc elle s'affichera différemment, mais restera une liste. Mais vous pouvez vous débarrasser des attributs avec attr(x,"_nom_attribut_")<-NULL
. Vous pouvez probablement aussi utiliser aggregate()
.
Suite au départ de @Aaron de Stack Overflow et à la réponse de @Theo, les éléments de la liste fusionnée sont sous forme de vecteur c
. Mais si vous souhaitez lier des lignes et des colonnes, utilisez rbind
et cbind
.
merged = map(names(first), ~rbind(first[[.x]], second[[.x]])
merged = set_names(merged, names(first))
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.