Vorbereitung einer komplexen Tabelle für den Import in R

Beispiel: Labor-Datenmaster ,,Bodenlösung"

Niels Schwab | Ronja Gottschalk
RLab - Skriptbasierte modulare Umweltstatistik (Universitätskolleg 2.0)
Universität Hamburg
CC BY-SA 4.0| 2020

Inhaltsverzeichnis

Ziel

In diesem Digitalen Skript erfährst Du in Ergänzung zum allgemein gehaltenen Digitalen Skript Import von Daten in R, wie ein Datenmaster* des Labors des Instituts für Geographie der Universität Hamburg (im Folgenden Labor-Datenmaster ,,Bodenlösung") so vorbereitet wird, dass beim Import in R alle Daten fehlerfrei übernommen werden. Dazu sind drei Schritte erforderlich, die auf den folgenden Seiten beschrieben werden.

Beim Labor-Datenmaster handelt es sich um eine recht komplexe Excel-Tabelle, die eine etwas aufwändigere Vorbereitung als im Digitalen Skript Import von Daten in R beschrieben, erforderlich macht.

Dieses Digitale Skript ist eine Ergänzung zum Digitalen Skript Labordatenanalyse mit R. In ,,Labordatenanalyse mit R" wird gezeigt, wie die Daten visualisiert und analysiert werden. Daher wird nicht dort, sondern in diesem Skript, auf die Vorbereitung der Rohdaten, einer Excel-Tabelle mit Analysewerten, eingegangen.

* Hier wird als Beispiel der ,,Datenmaster Bodenlösung” verwendet. Die Anleitung lässt sich auf die Vorbereitung anderer Datenmaster des Labors übertragen. Zum Beispiel ist beim Datenmaster ,,Bodenphysik" zu empfehlen, vorab in der .xlsx-Tabelle alle Spalten zu löschen, die nicht benötigt werden. Welche das sind, geht aus dem R-Skript zur Analyse der bodenphysikalischen Daten hervor.

Voraussetzungen

Um dieses Skript zu verstehen und die beschriebenen Schritte gleich mitmachen zu können, erfüllst Du im Idealfall folgende Voraussetzungen:

  • Du besitzt grundlegende Kenntnisse zum Import von Daten in R. Diese Kenntnisse kannst Du Dir aneignen, indem Du das Digitale Skript Import von Daten in R und den RLab-Kurs Daten einlesen und kennenlernen durcharbeitest.
  • Du hast die Beispieldatei Datenmaster_Labor.xlsx auf Deiner Festplatte gespeichert oder eine eigene Beispieldatei vorliegen.
  • Du beherrschst Grundfunktionen des Programms Excel oder eines anderen Tabellenkalkulationsprogramms* (z.B. LibreOffice Calc).
  • Du hast dieses Programm installiert und fertig zur Nutzung gestartet.

* Hinweis: Das Vorgehen wird hier anhand von Microsoft Excel 2007 beschrieben, ist aber auch mit anderen Versionen und alternativen Programmen nachvollziehbar.

Am besten öffnest Du parallel zu dem Digitalen Skript RStudio, da im Folgenden auch ein kleiner Abschnitt R-Code vorgestellt wird und Du die Funktionalität dann direkt ausprobieren kannst.

Für Anregungen und Kommentare zur Verbesserung dieses Digitalen Skripts ist das RLab-Team immer dankbar! Du kannst auch Fragen zu den Inhalten stellen! Nutze für all das gerne die Kommentar-Funktion!

Eigenschaften des Datenmasters

Der Labor-Datenmaster ,,Bodenlösung" besitzt Eigenschaften, die im Labor-Alltag sehr sinnvoll sind, die direkte Verwendung in R aber erschweren. Daher sind vor dem Import des Datenmasters in R ein paar vorbereitende Schritte erforderlich.

So sieht der Datenmaster aus, wenn er frisch mit Analysewerten gefüllt aus dem Labor kommt:

Datenmaster-Rohversion

Hier sind einige der Gründe für die Änderungen, die auf den nächsten Seiten beschrieben werden:

Es gibt zwar R-Funktionen, mit denen sich die Excel-Formate .xls und .xslx speichern und einlesen lassen, dies ist erfahrungsgemäß allerdings recht fehleranfällig. Am besten klappt das Einlesen mit .txt- oder .csv-Dateien. Dafür brauchen auch keine zusätzlichen Packages installiert werden.
Sonderzeichen wie $, %, &, ß usw. sollten in Daten, mit denen in R gearbeitet wird, vermieden werden. Sie können (müssen aber nicht) zu Fehlermeldungen führen.
Umlaute sollten in Daten, mit denen in R gearbeitet wird, vermieden werden. Sie können (müssen aber nicht) zu Fehlermeldungen führen.
Tabellen in R haben immer nur eine Kopfzeile, ,,doppelte Kopfzeilen” und verbundene Zellen wie bei Excel gibt es nicht. Das liegt u.a. daran, dass Tabellen in R aus Vektoren aufgebaut sind.
Excel-Tabellen mit verbundenen Zellen in der Kopfzeile, wie es beim Labor-Datenmaster der Fall ist, lassen sich ohne diese Kopfzeile importieren. Es wäre auch möglich, die Kopfzeile mit den verbundenen Zellen separat zu importieren und deren Inhalt bei den zugehörigen Spaltennamen zu ergänzen.
Dies alles ist aber umständlich und rechtfertigt zumindest im Fall des Labordatenmasters den Aufwand nicht.

Schritt 1: Als .csv-Datei speichern

Als erstes sollte die Excel-Tabelle im comma-seperated-values-Format (.csv) gespeichert werden. Es ist zu empfehlen, in R generell auf Umlaute zu verzichten, um Fehlermeldungen zu vermeiden. Das gilt auch für den Dateinamen der .csv-Datei:

Kurze Dateinamen
Lange Dateinamen funktionieren in R zwar problemlos, dennoch ist zu empfehlen, sie kurz zu halten - so bleibt auch Dein R-Code kurz und übersichtlich und ist weniger anfällig für Tippfehler.
Trotz der Kürze sollte der Dateiname noch ,,sprechend” sein, so dass Du auch nach einer längeren R-Pause weißt, welcher Datensatz sich dahinter verbirgt. ,,data.txt” oder ,,tabelle.csv” sind zum Beispiel eher ungeeignete Dateinamen.

Schritt 2: Doppelte Kopfzeile entfernen

Tabellen in R haben immer nur eine Kopfzeile. Daher sollte vor dem Import in R die erste Zeile des Labordaten-Masters gelöscht werden.

Alternativ kann beim Import in R die erste Zeile übersprungen werden. Wir beschreiben hier beide Wege, welchen Du bei der Analyse Deiner eigenen Daten wählst, bleibt Dir überlassen.

Löschen der Kopfzeile in Excel

Um die erste Kopfzeile in Excel zu löschen, kannst Du wie folgt vorgehen: Du klickst einfach mit der rechten Maustaste auf die Nummer der ersten Zeile (,,1”). Damit markierst Du die gesamte Zeile und öffnest gleichzeitig das Kontext-Menü, aus dem Du dann den Punkt ,,Zellen löschen” auswählst. Danach solltest Du die so veränderte .csv-Datei speichern. Das geht entweder über das Excel-Menü (,,Speichern”) oder mit der Tastenkombination Strg+s. Ignoriere hierbei wieder den
Kompatibilitäts-Hinweis
Speichern csv Eigenschaften
von Excel und bestätige mit ,,Ja”.

Löschen der ersten Zeile

Importieren in R ohne Kopfzeile

Die Excel-Tabelle kann auch ohne vorheriges Löschen der Kopfzeile in R importiert werden. Dann sollte die erste Zeile allerdings nicht mit eingelesen werden. Dazu kann in der Funktion read.table() das Argument skip= mit dem Wert ,,1” versehen werden (..., skip = 1,...). So wird beim Einlesen die erste Spalte übersprungen.

Ein exemplarischer R-Code, mit dem der Inhalt einer .csv-Datei als Dataframe ,,df" eingelesen wird, kann dann z.B. so aussehen:

df <- read.table('G:/Daten/Bodenloesung.csv', skip = 1,
                    header = T, sep = ';', dec = ',',
                    stringsAsFactors = F)
  # sep = und dec = ggf. anpassen, siehe Info im Digitalen Skript                  

Trennzeichen in .csv-Dateien - Ursache für fehlerhaften Datenimport

.csv-Dateien besitzen (leider) nicht immer identische Zeichen für die Trennung von Spalten und Dezimalstellen. Häufig werden Spalten durch Semikola getrennt, üblich sind aber auch Kommata oder andere Zeichen. Die Dezimalstellen werden meistens mit Punkt oder Komma abgetrennt, aber auch hier sind prinzipiell andere Zeichen möglich.

Bei der Anzeige in MS-Excel ist die Identifikation der Trennzeichen nicht eindeutig möglich. Wir empfehlen, eine .csv-Datei dazu mit einem Texteditor (z.B. Notepad oder Editor) zu öffnen. In der Anzeige dieser Programme sind die Zeichen eindeutig ablesbar und können per copy&paste in den R-Code übernommen werden: Beim Einlesen einer .csv-Datei in R werden die Trennzeichen in der Funktion read.table() mit den Argumenten sep = und dec = angegeben. Für die Beispieldateien sind in den Code-Beispielen die passenden Trennzeichen angegeben. Bei anderen Dateien ist es ggf. erforderlich, sie anzupassen.

Ausführliche Infos zu .csv-Dateien findest Du im Digitalen Skript ,,Import von Daten in R” auf der Seite csv-Dateien im Detail.

    Besonders häufig treten Probleme beim Einlesen von HOBO-Daten auf, da beim Export von Daten aus der HOBO-Software unterschiedliche Trennzeichen angegeben werden können. Zusätzlich können sich die Zeichen bei einer weiteren Bearbeitung in MS-Excel unbemerkt ändern. Daher: Am besten kurz per Texteditor checken und Trennzeichen im Code entsprechend anpassen.

Schritt 3: Ersetzen von Umlauten und Sonderzeichen

Die Beispieltabelle ,,Labor-Datenmaster” enthält Umlaute und Sonderzeichen, die in R zu Fehlermeldungen führen können. Daher sollten diese ersetzt werden. Das geht in Excel ganz einfach mit der Funktion ,,Suchen und Ersetzen”. Die Funktion lässt sich über den Menü-Reiter ,,Start” - ,,Suchen und Auswählen” oder einfach mit Strg+h in Excel aufrufen.

Hier sollte nacheinander nach allen Umlauten gesucht werden und ins Feld ,,Ersetzen durch” zum Beispiel ae für ä eingegeben werden. Zusätzlich sollte mindestens nach ß gesucht und durch zwei s ersetzt werden. Sinnvoll ist auch, Leerzeichen durch Unterstriche (_) zu ersetzen.

Denke daran, zum Schluss die veränderte Datei als .csv zu speichern (per Menü oder mit Strg+s). Ignoriere hierbei wieder den

Kompatibilitäts-Hinweis
Speichern csv Eigenschaften
von Excel und bestätige mit ,,Ja”.

Hinweis:
In der Beispieldatei sind nur ä, ü und Leerzeichen enthalten.


Herzlichen Glückwunsch! - Das war der dritte und letzte Schritt, der vor dem Import des Labor-Datenmasters ,,Bodenlösung" in R zu erledigen ist. Nun kannst Du die .csv-Datei mit der Funktion read.table() in R einlesen und die Daten dann grafisch darstellen und analysieren. Wie das mit den Daten des Labor-Datenmasters geht, kannst Du im Digitalen Skript Labordatenanalyse mit R lernen.

Vorgehen bei anderen Datenmastern
Bei anderen Datenmastern ist das hier beschriebene Vorgehen anzupassen. Zum Beispiel ist beim Datenmaster ,,Bodenphysik" zu empfehlen, vorab in der .xlsx-Tabelle alle Spalten zu löschen, die nicht benötigt werden. Welche das sind, geht aus dem R-Skript zur Analyse der bodenphysikalischen Daten hervor.

Das Einlesen der Daten geht mit dem hier unterhalb abgebildeten Code, den Du per copy&paste in Dein eigens R-Skript übernehmen kannst.

Mit folgenden Code wird die .csv-Datei ,,Bodenloesung.csv", die in diesem Beispiel unter ,,G:/Daten" gespeichert ist, als Dataframe ,,BL" in das Environment von R eingelesen:

BL <- read.table('G:/Daten/Bodenloesung.csv',
                    header = T, sep = ';', dec = ',',
                    stringsAsFactors = F)
 # sep = und dec = ggf. anpassen, siehe Info im Digitalen Skript          

Wenn Du Dir, wie auf der vorherigen Seite beschrieben, das manuelle Löschen der ersten Kopfzeile sparen möchtest, lautet der Code wie folgt:

BL <- read.table('G:/Daten/Bodenloesung.csv', skip = 1,
                    header = T, sep = ';', dec = ',',
                    stringsAsFactors = F)
 # sep = und dec = ggf. anpassen, siehe Info im Digitalen Skript  

Umfangreiche weitere Infos findest Du im Digitalen Skript Import von Daten in R.

Trennzeichen in .csv-Dateien - Ursache für fehlerhaften Datenimport

.csv-Dateien besitzen (leider) nicht immer identische Zeichen für die Trennung von Spalten und Dezimalstellen. Häufig werden Spalten durch Semikola getrennt, üblich sind aber auch Kommata oder andere Zeichen. Die Dezimalstellen werden meistens mit Punkt oder Komma abgetrennt, aber auch hier sind prinzipiell andere Zeichen möglich.

Bei der Anzeige in MS-Excel ist die Identifikation der Trennzeichen nicht eindeutig möglich. Wir empfehlen, eine .csv-Datei dazu mit einem Texteditor (z.B. Notepad oder Editor) zu öffnen. In der Anzeige dieser Programme sind die Zeichen eindeutig ablesbar und können per copy&paste in den R-Code übernommen werden: Beim Einlesen einer .csv-Datei in R werden die Trennzeichen in der Funktion read.table() mit den Argumenten sep = und dec = angegeben. Für die Beispieldateien sind in den Code-Beispielen die passenden Trennzeichen angegeben. Bei anderen Dateien ist es ggf. erforderlich, sie anzupassen.

Ausführliche Infos zu .csv-Dateien findest Du im Digitalen Skript ,,Import von Daten in R” auf der Seite csv-Dateien im Detail.

    Besonders häufig treten Probleme beim Einlesen von HOBO-Daten auf, da beim Export von Daten aus der HOBO-Software unterschiedliche Trennzeichen angegeben werden können. Zusätzlich können sich die Zeichen bei einer weiteren Bearbeitung in MS-Excel unbemerkt ändern. Daher: Am besten kurz per Texteditor checken und Trennzeichen im Code entsprechend anpassen.

Zusammenfassung

Wie viele Schritte sind erforderlich, um den Labor-Datenmaster gemäß dieser Anleitung für den Import in R vorzubereiten?

Frage-2

In welchen Dateiformaten sollte eine Tabelle am besten gespeichert werden, wenn sie nach R importiert werden soll?

Frage-1 Frage-4

Welche Elemente sollten in Dateien, die in R eingelesen werden, nicht vorhanden sein?

Frage-2 Frage-4 Frage-6


Vielen Dank für die Nutzung dieses Digitalen Skripts! Das RLab-Team hofft, dass es verständlich und hilfreich ist.

Für Anregungen und Kommentare zur Verbesserung dieses Digitalen Skripts ist das RLab-Team immer dankbar! Du kannst auch Fragen zu den Inhalten stellen! Nutze für all das gerne die Kommentar-Funktion!