
Transcription
Datenbereinigung in RReferent: Stefan ThießBetreuer: Dr. Julian KunkelProseminar Programmieren in R47/ 1
GliederungEinführung TidyR-Paket Typenumwandlung StrinR-Paket Fehlende Werte Extreme Werte Data-Warehouse47/ 2
EinführungDatenbereinigung ist: Auffinden von FehlernErkennen von WidersprüchenErsetzen von DatenZiel ist es: Die Datenqualität zu erhöhenDie Datenanalyse zu verbessernEntscheidungsgrundlagen verbessern47/ 3
EinführungDaten ErkundungStandardisierungStrukturierenNormieren Bereinigung uftrennen47/ 4
Das TidyR-PaketPrincipel of tidy data by Handley Wickham47/ 5
Das TidyR-PaketTidy data: Ein Objekt pro Reihe Eine Variable pro Spalte Ein Objekttyp pro Tabelle47/ 6
Das TidyR-PaketDirty data: Spaltennamen sind Werte Variablen sind im Wertebereich mehrere Variablen sind in einer Spalte mehrere Objekte sind in einer Tabelle47/ 7
Das TidyR-PaketTidyR: Von Hadley Wickham Verändert Tabellen Funktionen–gather , seperate, spread, unite47/ 8
TidyR-Paket::gatherProblem: Spaltennamen sind WerteSyntax: gather(data,key, value, )Semantik:data: Name desDatensatzeskey: Spaltenname fürdie Werte in der Spaltevalue: Spaltennamefür die Werte : -data:Spaltennamen, diebleiben sollen47/ 9
TidyR-Paket::spreadProblem: Variablen sind WerteSyntax: spread(data,key, value)Semantik:data: Name desDatensatzeskey: Name der Spalte,deren Wert zumSpaltenname werdensollvalue: Name derSpalte ,die zum Wertwerden soll47/ 10
TidyR-Paket::seperateProblem: mehrere Variablen sind in einer SpalteSyntax:seperate (data ,col ,into)Semantik:data Name desDatensatzescol Spaltenname,welcher geteilt werdensollinto c( "Spaltennamenin die aufgeteilt werdensoll“)47/ 11
TidyR-Paket::uniteSyntax:unite (data,col,.)Semantik:data Name desDatensatzescol Spaltenname derneuen Spalte. Namen derSpalten diezusammengefasstwerden sollen47/ 12
TidyR-Paket:: Tidy dataProblem: mehrere Beobachtungseinheiten sind ineiner Tabelle47/ 13
TypenumwandlungTypen in R: character:"." numeric: 23.44, 120, NaN, Inf integer: 4L,1123L factor:factor("Hello"), factor(8) logical: TRUE, FALSE47/ 14
Typenumwandlung47/ 15
Typenumwandlung: lubridateDas Paket lubridate Standardisiert Kalenderdaten und Uhrzeiten ymd hms Jahr,Monat,Tag Stunde,Minute,Sekunde sind frei kombinierbar47/ 16
Typenumwandlung: lubridate47/ 17
Stringr-Paket Beinhaltet einfache Funktionen zur Veränderung von Strings Von Hadley Wickham programmiertFunktionen: str trim str pad str detect str replace47/ 18
Stringr-PaketAnforderungen an Firmen-ID: beginnt mit „NEW“ ist insgesamt 7 Zeichen lang alles hintereinander geschrieben47/ 19
Stringr-PaketFirmen-ID's enthalten mehrere Fehler: Buchstaben sind klein Leerzeilen sind vor ,hinter und mitten in der Firmen-ID Teilweise sind Firmen-ID nicht 7 Zeichen lang47/ 20
Stringr-Pakettrim-Funktion: Entfernt alle Leerzeichen vor dem ersten und nach demletzten Zeichen Syntax: str trim(String, side c("both", "left", "right"))47/ 21
Stringr-Paketreplace all-Funktion: Ersetzt Zeichen durch andere Zeichen Syntax: str replace all(string, pattern, replacement)47/ 22
Stringr-Paketstr pad-Funktion: Fügt Zeichen an Syntax: str pad(string, width, side c("left", "right", "both"),pad " ")47/ 23
Stringr-Pakettoupper-Funktion: Macht alle Buchstaben groß Syntax: toupper(x)47/ 24
Stringr-Paket replace all-Funktion:„Old“ wird durch „NEW“ ersetzt47/ 25
Fehlende WerteDie Attribute eines Datensatzes sind mit Werten belegt, diesemantisch vom Wert NULL abweichen.47/ 26
Fehlende WerteFehlende Werte: In R als NA #N/A in Excel "." in SAS als Leerzeichen in weiteren Programmen47/ 27
Fehlende WerteSuche fehlender Daten: is.na(data) any(is.na(data) sum(is.na(data)) summary(data)47/ 28
Fehlende Werteis.na-Funktion: Gibt einen Wahrheitswert wieder In Form des Datentyps der Datei Syntax: is.na(data)47/ 29
Fehlende WerteAbwandlungen der is.na-Funktionen:any(is.na(data)): Gibt an, ob irgendein NA vorliegtsum(is.na(data)): Summiert die NA's im Datensatz47/ 30
Fehlende Wertecomplete.cases-Funktion Gibt eine Wahrheitswert wieder Syntax: complete.cases(data)47/ 31
Fehlende Wertena.omit-Funktion: Entfernt alle Reihen mit NA's Syntax: na.omit(data)47/ 32
Fehlende WerteSpalten mit fehlenden Werten entfernen:47/ 33
Extreme WerteOutliers sind extreme Wert , der von dem Großteil deranderen Werte abweicht.47/ 34
Extreme WerteOffensichtliche Fehler:Formen: Werte sind nicht plausibelz.B. Alter einer Person beträgt 243 Jahre Werte machen keinen Sinnz.B. Alter einer Person beträgt -5 Jahre Werte liegen in verschiedenen Einheiten vorz.B. Größe, Gewicht, Geschwindigkeit47/ 35
Extreme WerteOffensichtliche Fehler finden mit editrules: Möglichkeit zur Erstellung von Bedingungen Bedingung können in Objekte gespeichert werden Bedingungen können im Editor gemacht werden47/ 36
Extreme WerteOffensichtliche Fehler finden mit editset:Syntax: editset(c(“Bedingung“))47/ 37
Extreme WerteOffensichtliche Fehler finden mit violatedEdits:Syntax: violatedEdits(editrule-Variable ,data)47/ 38
Extreme Werte47/ 39
VollständigkeitFehlende Daten ersetzen mit:47/ 40
Data-Warehouse und RDatensammlungDatenbereinigungDatenanalyse47/ 41
Data-Warehouse und RFrage: Wie gestaltet sich der Datenimport/export in Rmit Datenbanken?Pakete zu verbinden mit Datenbanken:SystemPaket in reSQLSQLiteRSQlite47/ 42
Data-Warehouse und RBeispiel: RmySQL – R mit Datenbank verbinden47/ 43
Data-Warehouse und RBeispiel: RmySQL – auf Daten zugreifen47/ 44
Datensätze zusammenführen47/ 45
ZusammenfassungDatenreinigung in R: tidyR – verändert Tabellen lubridate – standardisiert Zeitdaten StrinR – verändert Zeichen is.na() - finden von fehlenden Werten Editset – falsche/fehlende Werte ersetzen RmySQL – Datenaustausch zwischen R und MySQL47/ 46
Quellenverzeichnis[AP1]“Datenqualität erfolgreich Steuern“, Hanser Verlag,Seite: 157Weitere Quellen: Data Cleaning:Problems and Current Approaches, ErhardRahm, Hong Hai Do Tidy data , Hadley Wickham, 200947/ 47
PostgreSQL RPostgreSQL SQLite RSQlite 47/ 43 Data-Warehouse und R Beispiel: RmySQL – R mit Datenbank verbinden 47/ 44 Data-Warehouse und R Beispiel: RmySQL – auf Daten zugreifen 47/ 45 Datensätze z