Spalten zusammenführen

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

Moderatoren: EDi, jogo

Antworten
DaVerder
Beiträge: 2
Registriert: Mi Sep 18, 2019 12:37 pm

Spalten zusammenführen

Beitrag von DaVerder »

Hallo zusammen,

ich habe folgendes Problem:
Ich habe insgesamt 179 Tabellen mit Daten vom Deutschen Wetterdienst und diese bereits nach signifikanten Daten gefiltert.
Nun will ich zu diesen Daten mir noch die passenden Satellitendaten besorgen und muss daher einer Tabelle/Liste erstellen, in der jedes Datum enthalten ist, was für meine Untersuchung relevant ist. Allerdings habe ich bisher noch keine Möglichkeit in R gefunden, das entsprechend umzusetzen.
Beim zusammenführen der beiden Spalten sollten auch alle mehrfach vorkommenden Datumsangaben nur einmal vorkommen.
Ich habe es bisher mit dem "merge"-Befehl versucht, was allerdings zu nichts führen kann, da es nur diese eine Spalte zum "mergen" gibt und daher alle Daten, die nicht in der anderen Spalte vorkommen, nicht in der finalen Tabelle vorkommen.
Meine bisheriges Skript:

Code: Alles auswählen

Tabelle_164 <- read.csv("Tabelle_164_signigkant.csv", header= TRUE, sep = ",")
Tabelle_183 <- read.csv("Tabelle_183_signigkant.csv", header= TRUE, sep = ",")

t164 <- data.frame(MESS_DATUM = Tabelle_164$MESS_DATUM)
t183 <- data.frame(MESS_DATUM = Tabelle_183$MESS_DATUM)

ft164 <- data.frame(MESS_DATUM = substring(t164$MESS_DATUM,1,8))
ft183 <- data.frame(MESS_DATUM = substring(t183$MESS_DATUM,1,8))

fertig <- merge(ft164, ft183, by = "MESS_DATUM")
Schonmal vielen Dank im voraus für alle Tipps und Hilfsvorschläge!
Im Anhang sind zwei beispielhafte Tabellen.

Gruß
DaVerder
Dateianhänge
Tabelle_183_signifikant.csv
(376.53 KiB) 17-mal heruntergeladen
Tabelle_164_signifikant.csv
(337.15 KiB) 17-mal heruntergeladen
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Spalten zusammenführen

Beitrag von jogo »

Hallo DaVerder,

willkommen im Forum!
Wahrscheinlich ist unique() hier die passende Funktion.

Code: Alles auswählen

Tabelle_164 <- read.csv("http://forum.r-statistik.de/download/file.php?id=685", header= TRUE, sep = ",")
Tabelle_183 <- read.csv("http://forum.r-statistik.de/download/file.php?id=686", header= TRUE, sep = ",")

L <- list(Tabelle_164, Tabelle_183)

Datum <- lapply(L, function(l) substring(l$MESS_DATUM,1,8))

fertig <- unique(do.call(c, Datum))
oder

Code: Alles auswählen

Dateien <- c("http://forum.r-statistik.de/download/file.php?id=685", "http://forum.r-statistik.de/download/file.php?id=686")

Datum <- lapply(Dateien, function(Datei) {
  Dat <- read.csv(Datei, header= TRUE, sep = ",")
  substring(Dat$MESS_DATUM,1,8)
})

fertig <- unique(do.call(c, Datum))
Gruß, Jörg
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Spalten zusammenführen

Beitrag von Athomas »

Ich habe es bisher mit dem "merge"-Befehl versucht, was allerdings zu nichts führen kann, da es nur diese eine Spalte zum "mergen" gibt und daher alle Daten, die nicht in der anderen Spalte vorkommen, nicht in der finalen Tabelle vorkommen.
Der Parameter "all" der merge-Funktion ist bekannt?
DaVerder
Beiträge: 2
Registriert: Mi Sep 18, 2019 12:37 pm

Re: Spalten zusammenführen

Beitrag von DaVerder »

Hallo Jörg,

vielen Dank für deine schnelle und hilfreiche Antwort!
Ich habe dein vorgeschlagenes Skript noch wie folgt abgewandelt, damit ich direkt alle meine Tabellen mit einbeziehen kann.

Code: Alles auswählen




Dateien <- list.files(path=workingdirectory, pattern="*.csv$")                                            
Datum <- lapply(Dateien, function(Datei) {
  Dat <- read.csv(Datei, header= TRUE, sep = ",")
  substring(Dat$MESS_DATUM,1,8)
})

fertig <- unique(do.call(c, Datum))
fertig
Tabelle <- data.frame(MESS_DATUM = fertig)
Hat alles problemlos geklappt! Vielen Dank!

Gruß,
DaVerder
jogo
Beiträge: 2085
Registriert: Fr Okt 07, 2016 8:25 am

Re: Spalten zusammenführen

Beitrag von jogo »

Hallo DaVerder,

besser Du nimmst:

Code: Alles auswählen

pattern="\\.csv$"
Gruß, Jörg
Antworten