Abo
  • Services:

Die Programmiersprache für Statistikfans

Zunächst haben wir die Daten direkt aus der MySQL-Datenbank ermittelt. Aber schon beim Median nahmen wir R zu Hilfe. Die Programmiersprache R ist speziell für die Datenanalyse entwickelt worden, insbesondere auch für statistische Analysen. Deshalb sind solche Operationen zuweilen sehr trivial und enorm schnell. Für die Bestimmung des obengenannten Median der Anzahl von Messwerten benötigen wir lediglich vier Codezeilen auf der interaktiven Shell von R, nachdem wir aus der Datenbank die nach Token gruppierten, aber unsortierten Daten herausgezogen haben:

Stellenmarkt
  1. über duerenhoff GmbH, Osnabrück
  2. Transgourmet Deutschland GmbH & Co. OHG, Riedstadt

  1. # Lade CSV-Datei
  2. daten <- read.csv("daten.csv");
  3. # Benenne Spalten
  4. colnames(daten)<-c("token", "werte_anzahl");
  5. # Beachte nur die Zeilen mit einem Token
  6. daten <- daten[daten$token != 'Null',]
  7. # Median ermitteln
  8. median(daten$werte_anzahl);
  9. [1] 2166

Der Aufruf der median()-Funktion benötigt nur Millisekunden. Wie im Beispiel aber schon deutlich wird, bringt R als fachspezifische Sprache ihre eigene Syntax und andere Eigenheiten mit. Klassische Sprachelemente wie Schleifen und if-Bedingungen sind zwar möglich, führen aber oft zu kompliziertem und langsamem Code. Wer sich aber auf R einlässt und aus eingefahrenen Denkmustern aus C, PHP & Co. ausbricht, kann mit wenigen Zeilen Code zuweilen wahre Wunder zustande bringen.

QGIS und Python setzten wir auch ein

Zwangsläufig geht damit eine steile Lernkurve einher, die uns mehr Zeit gekostet hat, als wir ursprünglich dachten. Das gilt auch für QGIS. Es ist ein Programm für geografische Analysen, Anfänger dürften an ihm aber erst einmal schnell als Malprogramm für Karten Gefallen finden. Trotzdem verlangt es einen gehörigen Aufwand, um sich in die Fachbegriffe und Workflows einzuarbeiten. Schließlich verwenden wir auch Python. Wir benutzen es hauptsächlich, um Daten aus MySQL in CSV-Daten zu arrangieren. Einiges davon können wir auch MySQL erledigen lassen, in Python fällt es uns aber zuweilen leichter und der Code ist übersichtlicher. Allerdings sind CSV-Dateien im Zusammenspiel mit R sehr leicht zu benutzen. Und wir merken früh, dass es sinnvoll ist, auch vermeintliche Zwischenergebnisse besser stets auf Festplatte zu speichern, um jederzeit unsere Arbeit unterbrechen zu können.

Es gibt auch eine ganze Reihe kommerzielle Programme für die folgenden Aufgaben, mit denen wir uns das Leben wohl einfacher machen würden. Doch zum einen wollen wir offene Programme einzusetzen, zum anderen wollen wir so viel wie möglich durch Skripte automatisieren können. Idealerweise können wir diese Skripte für spätere Aufgaben auch wiederverwenden.

Heiteres Städteraten

Zurück zu den Daten. Bevor wir tatsächlich Aussagen extrahieren können, validieren wir die Daten. Am Anfang stehen die Städtenamen. Spaßeinträge halten sich sehr in Grenzen, auch wenn wir einige Einträge anfangs dafür halten. Aber die Orte "Au ZH", "Ban Pong" und "Wetter" heißen wirklich so. Mancher Lokalpatriot hat auch noch den Stadtteil angegeben. Mit Zeichensatz-Problemen haben wir ebenfalls gerechnet. Auch auffällig viele Benutzer kannten wohl das Problem, weshalb wir zum Beispiel auf "Koeln" und "Luebeck" stoßen, aber auch "Munich". Mehrdeutigkeiten lösen wir üblicherweise aufgrund einer ebenfalls angegebenen Postleitzahl eindeutig auf.

Um die Breitengrad- und Längengrad-Angabe erst einmal grob zu prüfen, nutzen wir einen simplen Trick: Wir nutzen QGIS im Zusammenspiel mit Vektorkarten, um die Angaben darzustellen. Eine hilfreiche Übersicht, wo solche Karten heruntergeladen werden können, gibt es auf einer Webseite.

Mit Längen- und Breitengraden hantieren

So erhalten wir einen ersten Überblick, und wir entdecken tatsächlich einige Merkwürdigkeiten. Einige Punkte liegen in Ländern, die nicht in unserer Datenbank vermerkt sind. Wir schauen uns die Datensätze genauer an und stellen fest, dass offensichtlich einige Nutzer den Breitengrad (Latitude) und Längengrad (Longitude) vertauscht haben. Einige Punkthaufen erinnern uns an ein gitterartiges Muster und liegen weitab jeglicher Besiedlung. Hier fehlt es den geografischen Angaben offensichtlich an Genauigkeit. Das ist leider unsere eigene Schuld: Wir empfahlen in unserer Dokumentation ursprünglich, Breiten- und Längengrad auf zwei Stellen nach dem Komma zu kürzen. Das haben wir zwar korrigiert, aber das war zu spät. Da wir aber sowieso fehlende geografische Angaben nachträglich ermitteln wollen, entscheiden wir uns, dieses auch bei bereits bestehenden Daten zu tun.

 Mitmachprojekt: Frostbeulen, zieht nach Österreich!Geoencoding hilft uns weiter 
  1.  
  2. 1
  3. 2
  4. 3
  5. 4
  6. 5
  7. 6
  8. 7
  9.  


Anzeige
Blu-ray-Angebote
  1. (u. a. Deadpool, Alien Covenant, Assassins Creed)
  2. (u. a. Der Marsianer, Spaceballs, Titanic, Batman v Superman)
  3. (2 Monate Sky Ticket für nur 4,99€)

H4ndy 15. Mär 2017

Seit Golem.de nur noch über SSL läuft, funktioniert mein kleiner ESP leider nicht mehr...

Eheran 09. Mär 2017

Weil das Luftfeuchte, also verdampftes Wasser, ist. So wie man bei kochendem Wasser...

am (golem.de) 09. Mär 2017

Da danken wir doch ganz besonders!

am (golem.de) 09. Mär 2017

Vielen Dank und der Fehelr ist gefixt!

am (golem.de) 09. Mär 2017

Vielen Dank für das Lob! Wegen Skript siehe hier: https://forum.golem.de/kommentare...


Folgen Sie uns
       


Razer-Nommo-Chroma-Boxen - Test

Haartrockner oder doch Lautsprecher? Wir testen Razers Nommo-Chroma-Boxen und tendieren zu Ersterem.

Razer-Nommo-Chroma-Boxen - Test Video aufrufen
Underworld Ascendant angespielt: Unterirdische Freiheit mit kaputter Klinge
Underworld Ascendant angespielt
Unterirdische Freiheit mit kaputter Klinge

Wir sollen unser Können aus dem bahnbrechenden Ultima Underworld verlernen: Beim Anspielen des Nachfolgers Underworld Ascendant hat Golem.de absichtlich ein kaputtes Schwert bekommen - und trotzdem Spaß.
Von Peter Steinlechner

  1. Otherside Entertainment Underworld Ascendant soll mehr Licht ins Dunkle bringen

God of War im Test: Der Super Nanny
God of War im Test
Der Super Nanny

Ein Kriegsgott als Erziehungsberechtigter: Das neue God of War macht nahezu alles anders als seine Vorgänger. Neben Action bietet das nur für die Playstation 4 erhältliche Spiel eine wunderbar erzählte Handlung um Kratos und seinen Sohn Atreus.
Von Peter Steinlechner

  1. God of War Papa Kratos kämpft ab April 2018

NUC8i7HVK (Hades Canyon) im Test: Intels Monster-Mini mit Radeon-Grafikeinheit
NUC8i7HVK (Hades Canyon) im Test
Intels Monster-Mini mit Radeon-Grafikeinheit

Unter dem leuchtenden Schädel steckt der bisher schnellste NUC: Der buchgroße Hades Canyon kombiniert einen Intel-Quadcore mit AMDs Vega-GPU und strotzt förmlich vor Anschlüssen. Obendrein ist er recht leise und eignet sich für VR - selten hat uns ein System so gut gefallen.
Ein Test von Marc Sauter und Sebastian Grüner

  1. NUC7CJYS und NUC7PJYH Intel bringt Atom-betriebene Mini-PCs
  2. NUC8 Intels Mini-PC hat mächtig viel Leistung
  3. Hades Canyon Intel bringt NUC mit dedizierter GPU

    •  /