Abo
  • Services:
Anzeige
Ösi-Tux mit Thermometer
Ösi-Tux mit Thermometer (Bild: Alexander Merz/Golem.de)

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:

Anzeige

  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 

eye home zur Startseite
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...



Anzeige

Stellenmarkt
  1. ALDI SÜD, Mülheim an der Ruhr
  2. Getriebebau NORD GmbH & Co. KG, Bargteheide bei Hamburg
  3. LEONEX Internet GmbH, Paderborn
  4. AOK NORDWEST - Die Gesundheitskasse, Dortmund


Anzeige
Blu-ray-Angebote
  1. 74,99€ (Vorbesteller-Preisgarantie)
  2. 24,99€ (Vorbesteller-Preisgarantie)
  3. (u. a. Drive 7,79€, John Wick: Kapitel 2 9,99€ und Predator Collection 14,99€)

Folgen Sie uns
       


  1. Star Wars - Die letzten Jedi

    Viel Luke und zu viel Unfug

  2. 3D NAND

    Samsung investiert doppelt so viel in die Halbleitersparte

  3. IT-Sicherheit

    Neue Onlinehilfe für Anfänger

  4. Death Stranding

    Kojima erklärt Nahtodelemente und Zeitregen

  5. ROBOT-Angriff

    19 Jahre alter Angriff auf TLS funktioniert immer noch

  6. Bielefeld

    Stadtwerke beginnen flächendeckendes FTTB-Angebot

  7. Airspeeder

    Alauda plant Hoverbike-Rennen

  8. DisplayHDR 1.0

    Vesa definiert HDR-Standard für Displays

  9. Radeon-Software-Adrenalin-Edition

    Grafikkartenzugriff mit Smartphone-App

  10. Datentransfer in USA

    EU-Datenschützer fordern Nachbesserungen beim Privacy Shield



Haben wir etwas übersehen?

E-Mail an news@golem.de


Anzeige
Umrüstung: Wie der Elektromotor in den Diesel-Lkw kommt
Umrüstung
Wie der Elektromotor in den Diesel-Lkw kommt
  1. National Electric Vehicle Sweden Der Saab 9-3 ist zurück als Elektroauto
  2. Kein Plug-in-Hybrid Rolls-Royce Phantom wird vollelektrisch
  3. Ionity Shell beteiligt sich am Aufbau einer Ladeinfrastruktur

China: Die AAA-Bürger
China
Die AAA-Bürger
  1. Microsoft Supreme Court entscheidet über die Zukunft der Cloud

Watch Series 3 im Praxistest: So hätte Apples erste Smartwatch sein müssen
Watch Series 3 im Praxistest
So hätte Apples erste Smartwatch sein müssen
  1. Apple Watch Apple veröffentlicht WatchOS 4.2
  2. Alivecor Kardiaband Uhrenarmband für Apple Watch zeichnet EKG auf
  3. Smartwatch Die Apple Watch lieber nicht nach dem Wetter fragen

  1. Re: Im Prinzip wie der 27UD88-W nur eben größer...

    Joker86 | 20:56

  2. Re: Da fehlen leider noch ein paar Infos

    freebyte | 20:51

  3. Re: Das Trumpbashing VS Obama Vergötterung

    Compufreak345 | 20:50

  4. Re: Ich bin gespannt ob die eSim auch Dual Sim...

    angelodou | 20:49

  5. Re: Wenn wir schon beim Thema sind

    RipClaw | 20:35


  1. 18:40

  2. 17:11

  3. 16:58

  4. 16:37

  5. 16:15

  6. 16:12

  7. 16:01

  8. 15:54


  1. Themen
  2. A
  3. B
  4. C
  5. D
  6. E
  7. F
  8. G
  9. H
  10. I
  11. J
  12. K
  13. L
  14. M
  15. N
  16. O
  17. P
  18. Q
  19. R
  20. S
  21. T
  22. U
  23. V
  24. W
  25. X
  26. Y
  27. Z
  28. #
 
    •  / 
    Zum Artikel