rename (all) variables

Wie rufe ich R-Funktionen auf, wie selektiere ich Daten, ich weiß nicht genau ....

Moderatoren: EDi, jogo

Antworten
diobi

rename (all) variables

Beitrag von diobi »

Hallo,

Ich möchte meinen numerischen Variablen aaa bis zzz in meinem Datensatz "D" das Jahr anhängen, zb. aaa -> aaa2008, bbb -> bbb2008. Ich habe im Internet recherchieren können, dass dies wohl mit der Funktzion "past" klappen soll. Ich konnte es aber bisher nicht auf mein Problem erfolgreich anwenden, es klappt einfach nicht. Habt Ihr einen anderen Vorschlag für mich? Vielen Dank,

Diobi
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: rename (all) variables

Beitrag von bigben »

Wäre es nicht viel sinniger, diese Variablen in einer Liste "Jahr2008" zusammen zu fassen? Bitte erkläre uns, was das übergeordnete Ziel ist! So eine Umbenennung ist möglich, aber bestimmt nicht optimal.

LG,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
diobi

Re: rename (all) variables

Beitrag von diobi »

Hallo,
Ich arbeite mit mehreren Datensätzen aus unterschiedlichen Jahren und erstelle jedes mal einige neue Variablen. Später sollen alle Datensätze zusammengefügt werden, aber es soll unterschieden werden, aus welchem Jahr die Varaible stammt.
Grüße
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: rename (all) variables

Beitrag von Athomas »

Ich bin auch kein Freund davon, für die Auswertungen wesentliche Informationen in Variablen- (File-, ...) Namen zu codieren.
Das rächt sich IMMER, irgendwer muss diese Informationen dann wieder mühsam extrahieren und auswertbar machen.
Warum fügst Du nicht jeder Datei eine Variable "Jahr" mit dem passenden Inhalt hinzu?
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: rename (all) variables

Beitrag von bigben »

Wenn Du "Datensatz D" schreibst, dann meinst Du damit, dass die Daten in einem data.frame mit dem Name D vorliegen? Dann nehme ich an, dass es weiter data.frames, nennen wir sie A, B, C , gibt, die die Daten aus anderen Jahren beschreiben. Jetzt möchtest Du die Spaltennamen ändern, damit Du A bis D später zusammenfassen kannst, ohne dass es doppelte Spaltennamen gibt? Habe ich das richtig verstanden? So würde es sinnvoll sein.

Code: Alles auswählen

A <- data.frame(a = sample(1:12), aa = sample(1:12), aaa = sample(1:12))
B <- data.frame(a = sample(1:12), aa = sample(1:12), aaa = sample(1:12))
C <- data.frame(a = sample(1:12), aa = sample(1:12), aaa = sample(1:12))
D <- data.frame(a = sample(1:12), aa = sample(1:12), aaa = sample(1:12))

names(A) <- paste0(names(D), "2015")
names(B) <- paste0(names(D), "2016")
names(C) <- paste0(names(D), "2017")
names(D) <- paste0(names(D), "2018")

print(D)

print(do.call(cbind, list(A, B, C, D)))
HTH,
Bernhard
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
diobi

Re: rename (all) variables

Beitrag von diobi »

Hallo Bernhard,

Vielen Dank. Das hat alles so funktioniert, wie ich es haben wollte. Jetzt verstehe ich auch wo der Fehler lag. Ich hatte im Internet eine Funktion mit paste gefunden und diese dann auf meine Daten wie folgt angewandt:
D <- paste("2018", names(D), sep = "_")
Das hatte aber nicht funktioniert.

Die Sache mit dem Meta Skript versuche ich dann am Nachmittag. Nochmals vielen Dank und wünsche einen schönen Tag.

Diobi
Antworten