Funktion zum Datenimport
Verfasst: Fr Sep 06, 2019 12:13 pm
Liebe alle,
Zum Hintergrund: Ich will viele csv Tabellen importieren, die sich im Aufbau (Variablen) sehr ähnlich sind, aber es gibt auch immer wieder kleinere Unterschiede. Diese sollen am Ende zu einem Datensatz zusammengefügt werden. Da diese Aufgabe eine wiederkehrende ist, wollte ich eine Funktion zum Importieren schreiben.
Unten findet Ihr eine stark vereinfachte Version der Funktion "import", mit der ich nur auf meine beiden aktuellen Probleme eingehen will. Außerdem anbei zwei Beispieldatensätze, die Ihr in Euerem Arbeitsverzeichnis speichern müsstet.
Beispieltabellen: Zum einen klappt zwar grundsätzlich der Import und auch das erneute Speichern wie gewollt, ich möchte aber, dass die jeweilige Tabelle anschließend unter dem jeweiligen Namen im Workspace geladen ist. Siehe #2 im Code.
Außerdem gibt es Tabellen (hier Bsp2), die eine bestimmte Variable(hier Var3) nicht beinhalten. Innerhalb der Funktion sollte also eine entsprechende Abfrage und gegebenenfalls eine Erweiterung des Datensatzes geben (siehe #1 im Code).
Ich danke für Eure Hilfe!
Jörg
Zum Hintergrund: Ich will viele csv Tabellen importieren, die sich im Aufbau (Variablen) sehr ähnlich sind, aber es gibt auch immer wieder kleinere Unterschiede. Diese sollen am Ende zu einem Datensatz zusammengefügt werden. Da diese Aufgabe eine wiederkehrende ist, wollte ich eine Funktion zum Importieren schreiben.
Unten findet Ihr eine stark vereinfachte Version der Funktion "import", mit der ich nur auf meine beiden aktuellen Probleme eingehen will. Außerdem anbei zwei Beispieldatensätze, die Ihr in Euerem Arbeitsverzeichnis speichern müsstet.
Beispieltabellen: Zum einen klappt zwar grundsätzlich der Import und auch das erneute Speichern wie gewollt, ich möchte aber, dass die jeweilige Tabelle anschließend unter dem jeweiligen Namen im Workspace geladen ist. Siehe #2 im Code.
Außerdem gibt es Tabellen (hier Bsp2), die eine bestimmte Variable(hier Var3) nicht beinhalten. Innerhalb der Funktion sollte also eine entsprechende Abfrage und gegebenenfalls eine Erweiterung des Datensatzes geben (siehe #1 im Code).
Code: Alles auswählen
import<-function(Name_DF){
library(readr)
df<-paste(Name_DF,".csv",sep="")
DF<- read_delim(df, ";", escape_double = FALSE, col_types = cols(Var1 = col_character(), Var2 = col_number(), Var3 = col_number()), trim_ws = TRUE)
# 1. Es fehlt eine Abfrage, die überprüft, ob der zu importierende Datensatz eine bestimmte Variable mit Namen Namen "Var3" beinhaltet.
#Wenn ja (wie im Bsp1), wird die Variable mit den entsprechenden Werten importiert,
# wenn nein (wie bei Bsp2), wird die Variable dem Datensatz hinzugefügt und alle Beobachtungen sollen den Wert "nr" (nicht berichtet) erhalten.
write.csv2(DF,paste(Name_DF,"_neu.csv",sep=""),row.names=FALSE)
# 2. Das Abspechern des Datensatzes unter neuem Namen klappt. Aber wie erweitere ich die Funktion, dass der Datensatz auch direkt in den Workspace geladen wird?
}
import("Bsp1")
import("Bsp2")
Ich danke für Eure Hilfe!
Jörg