Ich mache oft Schleifen innerhalb von Schleifen und dann am Ende schmelzen die Listen zu einem Datenrahmen für die grafische Darstellung.Benennung geschmolzen iterativ gemappten Listen in der Tidyverse
ac<-list("BB","AA")
ca<-list(a=c(1,2,3),b=c(6,5,4))
cc<-map(a,function(y) map(ca,~paste0(.x,y)))
reshape2::melt(cc)
Q1: Gibt es eine andere Art und Weise von Karten innerhalb von Karten zu tun, ohne
jedoch zu function(y)
zurückgreifen, da oft meine Listen unbenannte sind neige ich dazu, die Werte der Liste als Namen hinzuzufügen, wie folgt:
Das resultierende df hat die Namen L2 und L1 und ich würde es vorziehen, wenn die Namen ca bzw. ac wären.
nam.cons<-NULL
map_test2<-function(list_in,...){
nam.cons<<-c(nam.cons,deparse(substitute(list_in)))
if (is.null(names(list_in))){
names(list_in)<-list_in
}
map(list_in,...)
}
cc3=map_test2(ac,function(y) map_test2(ca,~paste0(.x,y)))
cc4<-reshape2::melt(cc3)
names(cc4)<-c("value",rev(unique(nam.cons)))
Jetzt kann dies sehr schnell unübersichtlich werden, wenn ich die nam.cons
Variable zurückgesetzt vergessen. Ich könnte 1,2,3,4..n Versionen davon in separaten Funktionen erstellen, aber
Q2: Ist es möglich, eine melt_map-Funktion zu erstellen, die beide erlauben würde, über n-verschiedene Listen und dass am Ende auch die n-verschiedenen Listennamen als Spaltennamen beibehalten werden?