Distinkte Spalten entfernen

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

Moderatoren: EDi, jogo

Antworten
Effigy
Beiträge: 35
Registriert: Di Nov 26, 2019 11:44 am

Distinkte Spalten entfernen

Beitrag von Effigy »

Hallo zusammen,

ich möchte 6 .txt Dateien zusammen auslesen und in einen dataframe packen und dabei alle distinkten Spalten entfernen. Zwei der .txt Dateien haben nämlich 42 und andere nur 41 Spalten. 41 Spalten sind also bei allen sechs .txt Datein gleich. Ich möchte die eine "überflüssige" Spalte aus den beiden jeweiligen .txts entfernen. Vorher möchte ich die .txts mit einem Loop einlesen. Da fängts schon an. Ich versuche das bis jetzt wie folgt:

Code: Alles auswählen

 mypath <- "P:/SWB/SWB_Alle/Data_Sölle/Wetter - Weather/Davis_Wetterstationen/Daten_Roh/WSDed"
setwd(mypath)
filenames <- list.files(mypath, pattern = "*.txt", full.names = T)
WSDede <- lapply (filenames, read.delim (header = T, na.strings = "---"))
Ich bekomme den Error

> WSDede <- lapply (filenames, read.delim (filenames, header=T, na.strings = "---"))
Error in file(file, "rt") : invalid 'description' argument

Wenn ich filenames weglasse, dann sagt er mir

Error in read.table(file = file, header = header, sep = sep, quote = quote, :
argument "file" is missing, with no default

Wenn ich nur

Code: Alles auswählen

WSDede <- lapply (filenames, read.delim) 
verwende, geht es zwar, aber ich möchte ja die Argumente wie header, na.strings etc. mitloopen. Wie mach ich das?
Und wie bekomme ich die dann jeweils die eine "überflüssige" Spalte weg. Habe es schon mit !distinct() und col_skip() und allem möglichen probiert und nichts geht.. Danke für eure Hilfe!

Lieben Gruß,
Max
jogo
Beiträge: 2086
Registriert: Fr Okt 07, 2016 8:25 am

Re: Distinkte Spalten entfernen

Beitrag von jogo »

Hallo Max,

erstmal einen Link auf die Schnelle:
https://stackoverflow.com/questions/114 ... es-at-once

Die unterschiedliche Anzahl von Spalten ist natürlich ein Problem für das Zusammenfügen der Daten
- also muss man das vorher beheben.
Ist den bei den beiden Dateien die letzte Spalte zuviel oder eine mit einem bestimmten Namen (oder einer bestimmten Position)?

ansonsten probier mal:

Code: Alles auswählen

WSDede <- lapply (filenames, read.delim, header = TRUE, na.strings = "---")
wenn dies nicht funktioniert, wirst Du read.table() verwenden müssen, also

Code: Alles auswählen

WSDede <- lapply (filenames, read.table, header = TRUE, na.strings = "---", ...)
Das liegt daran, dass die vorparametrisierten Versionen von read.table() etwas störrisch sind, wenn es um das Abändern der Parameter geht.


Gruß, Jörg
Athomas
Beiträge: 769
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Distinkte Spalten entfernen

Beitrag von Athomas »

Du solltest Dir mal fread() und rbindlist() aus dem package data.table angucken!

P.S.: Das Wort "distinkt" gibt es nicht...
P.P.S.: Gibs doch, is Bildungssprache (abgegrenzt, abgrenzbar, klar unterschieden), kennich nich!
Antworten