Datenimport und deutsche Umlaute

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

Moderatoren: EDi, jogo

Antworten
benne
Beiträge: 12
Registriert: Mo Okt 08, 2018 1:42 pm

Datenimport und deutsche Umlaute

Beitrag von benne »

Hallo allerseits,

im Augenblick muss ich eine Datei mit fester Spaltenbreite in R importieren.
Nach einigem Testen und Recherchieren verwende ich dazu die Funktion read_fwf aus dem readr-Paket.
Die ist ordentlich schnell und einfach zu verwenden.

Probleme bereitet mir jetzt aber ein Feld, in dem Ortsnamen stehen, die auch deutsche Umlaute enthalten.
Laut Windows-Editor ist die Datei "UTF-8-UNIX" kodiert.
Wenn ich die jetzt per read_fwf einlese, werden alle Felder nach dem Ortsnamen, die einen Umlaut enthalten, um ein Zeichen versetzt.

In meiner Ursprungsdatei steht beispielsweise:

Code: Alles auswählen

...Herne                                    mGS...
...Lübeck                                   wLD...
Aus diesem Datenfragment sollten die drei Felder "Ortsname", "Geschlecht" und "Familienstand" gefüllt werden.
Im ersten Fall funktioniert das auch, und ich erhalte als Ortsname "Herne", für Geschlecht "m" und beim Familienstand ist es eben "GS".
Beim zweiten Datensatz bleibt das Merkmal Geschlecht leer und dafür steht im Familienstand "wL", während das "D" noch wieder ein Feld "weiterrutscht".

Langer Rede, kurzer Sinn.
Kann ich die Kodierung für Dateioperationen anpassen und wenn ja, wie und wo?

Vielen Dank schonmal vorab
Benne

Nachtrag:

Ich hab' jetzt mal ausprobiert, was passiert, wenn ich mit UltraEdit den Zeichensatz auf "DOS" setze.
Dann sieht im Editor alles gut aus, die Datei wird von R per read_fwf insoweit korrekt eingelesen, dass alle Spalten an der korrekten Stelle landen.
Allerdings zeigt mir R jetzt die Umlaute nicht mehr richtig an.
Für ein "ü" steht da dann "<fc>" und aus einem "ä" wird "<e4>".

Ist das jetzt nur ein Anzeigeproblem von R bzw. RStudio?

Nebenbei bemerkt, arbeite ich hier unter Windows 7.
Ein Freund ist jemand, der sich deinen Müll anhört, dir sagt dass es Müll ist und trotzdem weiter zuhört.
Robin Williams
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Datenimport und deutsche Umlaute

Beitrag von EDi »

Ich bin zwar kein readr Nutzer aber schau dir mal ?
readr::locale() an.

https://cran.r-project.org/web/packages ... cales.html

Und dort dann das encoding setzen. Unter windoze ist das oft "latin-1", soweit ich mich erinnere.
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
benne
Beiträge: 12
Registriert: Mo Okt 08, 2018 1:42 pm

Re: Datenimport und deutsche Umlaute

Beitrag von benne »

Oh Mann, wenn ich Montag wieder im Büro bin, probier' ich das direkt aus.
Und dann muss ich mir direkt eine neue Brille besorgen, weil ich den Befehl offensichtlich komplett übersehen habe. :oops:

Vielen Dank schonmal für die Antwort.

Ganz nebenbei gefragt, wenn du sagst du bist kein readr-Nutzer:
Was kannst du denn empfehlen, um Dateien mit fester Spaltenlänge einzulesen?

Schönen Gruß
Benne
Ein Freund ist jemand, der sich deinen Müll anhört, dir sagt dass es Müll ist und trotzdem weiter zuhört.
Robin Williams
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Datenimport und deutsche Umlaute

Beitrag von EDi »

Ganz nebenbei gefragt, wenn du sagst du bist kein readr-Nutzer:
Was kannst du denn empfehlen, um Dateien mit fester Spaltenlänge einzulesen?
Hab ich nicht so oft, aber out-of-the-box kommt R mit read.fwf(), welches auch encodings handhaben kann. Ist aber nicht besonders flott. Ich mag data.table::fread, aber das brauch für fixed-width einen kleinen Hack, siehe hier https://stackoverflow.com/questions/247 ... idth-files
Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
benne
Beiträge: 12
Registriert: Mo Okt 08, 2018 1:42 pm

Re: Datenimport und deutsche Umlaute

Beitrag von benne »

Man reiche mir eine neue Brille!

Dein Tipp mit der locale-Funktion war der richtige Hinweis, EDi.
Die Kodierung hier ist zwar "Windows-1250", aber immerhin bleibt jetzt die Satzstruktur erhalten.

Unschön ist jetzt nur, dass die Umlaute in RStudio nicht mehr korrekt angezeigt werden
Statt eines 'ü' steht da jetzt "<fc>".
Da ich den Klartextnamen aber über ein externes Programm in Schlüsselwerte übersetzen lasse mit denen ich weiterarbeite, fällt das nicht weiter ins Gewicht.

Vielen Dank nochmal.
Ein Freund ist jemand, der sich deinen Müll anhört, dir sagt dass es Müll ist und trotzdem weiter zuhört.
Robin Williams
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Datenimport und deutsche Umlaute

Beitrag von Athomas »

Gibt es einen Grund, warum Du nicht ein paar Zeilen Deiner Einlesedatei (bei denen der Fehler aber noch auftritt) hier als Datei angehängt hast?
Ich könnte mir vorstellen, dass da noch mehr geht...
bigben
Beiträge: 2771
Registriert: Mi Okt 12, 2016 9:09 am

Re: Datenimport und deutsche Umlaute

Beitrag von bigben »

Vielleicht RStudio >> Tools >> Global Options... >> Code >> Saving >> Default text encoding :?:
---
Programmiere stets so, dass die Maxime Deines Programmierstils Grundlage allgemeiner Gesetzgebung sein könnte
Benutzeravatar
EDi
Beiträge: 1599
Registriert: Sa Okt 08, 2016 3:39 pm

Re: Datenimport und deutsche Umlaute

Beitrag von EDi »

Bitte immer ein reproduzierbares Minimalbeispiel angeben. Meinungen gehören mir und geben nicht die meines Brötchengebers wieder.

Dieser Beitrag ist lizensiert unter einer CC BY 4.0 Lizenz
Bild.
benne
Beiträge: 12
Registriert: Mo Okt 08, 2018 1:42 pm

Re: Datenimport und deutsche Umlaute

Beitrag von benne »

So, nachdem ich einiges anderes erledigt habe, bin ich endlich wieder dazu gekommen, mich dem Problem das Datenimports und der deutschen Umlaute zu widmen.

Nach etwas Recherche bin ich auf das rio-Paket gestoßen und muss sagen, dass ich begeistert bin.
Die Import-Routine ist sowas von flott, da kann ich nichtmals aufstehen, um zur Kaffeemaschine zu laufen.
Noch dazu wird der Zeichensatz ohne weiteres Zutun meinerseits richtig erkannt und übernommen.

Sollte noch jemand vor dem Problem stehen, dann liegt hier eine Lösung.
Meinen Respekt an die Macher hinter rio!

Schönen Gruß
Benne
Ein Freund ist jemand, der sich deinen Müll anhört, dir sagt dass es Müll ist und trotzdem weiter zuhört.
Robin Williams
Athomas
Beiträge: 768
Registriert: Mo Feb 26, 2018 8:19 pm

Re: Datenimport und deutsche Umlaute

Beitrag von Athomas »

Aber mit einer anfängerfreundlichen Import-/Export-Funktion ist R doch nicht mehr das, was es mal war! Pfui :lol: !

Ich verlinke hier mal die erste Seite der Vignette: https://cran.r-project.org/web/packages ... s/rio.html
Besten Dank für den Tipp!
Antworten