Liebes Forum,
eine scheinbar triviale Frage, aber ich sehe offenbar den Wald nicht vor lauter Bäumen.
Ich habe 10 data.frames die heissen tmp_lead_1, tmp_lead_2.... tmp_lead_10
In einer Funktion muss ich nun einen dieser data.frames auswählen, sagen wir tmp_lead_4 und als data_frame "act_lead" zur Vrefügung stellen (kopieren) ohne den ursprünglichen tmp_lead_4 zu löschen. Die Zahl im Namen des source-df (tmp_lead_#) steht bereit als Variable m (im Beispiel also 4)
Ich habe folgendes versucht
act_lead <- as.data.frame(paste0("tmp_lead_",m)) -> ich bekomme einen df mit einer Zeile/Spalte die beinhaltet "tmp_lead_4".
assign(act_lead, paste0("tmp_lead_",m)) -> Exakt das selbe, ich bekomme einen df mit einer Zeile/Spalte die beinhaltet "tmp_lead_4".
Das Netz gibt viele Lösungen an wie ich den neuen Variablennamen "act_lead" mit einer Laufvariablen versehen kann aber nicht das Gegenteil, wie ich eine Laufvariable im source data.framenehmen kann.- Für einen Tip wäre ich sehr dankbar.
VG Philipp
data.frames mit dynamischem Namen nutzen
Re: data.frames mit dynamischem namen nutzen
Hallo Philipp,
Das ganze Gebastel mit assign() kannst Du Dir dann sparen. Ein funktionierendes Minimalbeispiel könnte so aussehen:
LG,
Bernhard
Bleibt es bei diesen zehn Data Frames, oder muss das erweiterbar auf große Zahlen oder beliebige Zahlen sein? Wenn es bei den zehn bleibt, würde ich ausnahmsweise per copy&paste programmieren und die alle in eine Liste stecken:
Code: Alles auswählen
tmp_lead <- list()
tmp_lead[[1]] <- tmp_lead_1
tmp_lead[[2]] <- tmp_lead_2
tmp_lead[[3]] <- tmp_lead_3
tmp_lead[[4]] <- tmp_lead_4
tmp_lead[[5]] <- tmp_lead_5
tmp_lead[[6]] <- tmp_lead_6
tmp_lead[[7]] <- tmp_lead_7
Das wird mit der Liste zu einem ganz einfachenIn einer Funktion muss ich nun einen dieser data.frames auswählen, sagen wir tmp_lead_4 und als data_frame "act_lead" zur Vrefügung stellen (kopieren) ohne den ursprünglichen tmp_lead_4 zu löschen. Die Zahl im Namen des source-df (tmp_lead_#) steht bereit als Variable m (im Beispiel also 4)
Code: Alles auswählen
act_lead <- tmp_lead[[m]]
Code: Alles auswählen
alle <- list()
alle[[1]] <- iris
alle[[2]] <- mtcars
alle[[3]] <- iris
alle[[4]] <- iris
m <- 2
head(alle[[m]])
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Re: data.frames mit dynamischem Namen nutzen
Woher kommen denn diese Dataframes - irgendwer muss sie doch erzeugt/eingelesen und dabei diese unhandlichen Namen vergeben haben!?Ich habe 10 data.frames die heissen tmp_lead_1, tmp_lead_2.... tmp_lead_10
Re: data.frames mit dynamischem Namen nutzen
Hallo Zusammen,
vielen Dank für den Tip mit der list(). Das hat prima funktioniert. Ich konnte die liste schon beim anlegen der files erzeugen so dass auch die Anzahl der Elemente der Liste dynamisch sin. Perfekt und Danke.
VG Philipp
vielen Dank für den Tip mit der list(). Das hat prima funktioniert. Ich konnte die liste schon beim anlegen der files erzeugen so dass auch die Anzahl der Elemente der Liste dynamisch sin. Perfekt und Danke.
VG Philipp