R-Zertifizierung: Funktionen programmieren – Writing functions in R (DataCamp, Hadley und Charlotte Wickham)

Learning from the best: Dieser DataCamp-Kurs wurde tatsächlich von Hadley Wickham selbst entwickelt, zusammen mit seiner Schwester Charlotte Wickham. Die allermeisten R-Anwender werden schon nach kurzer Zeit auf den Namen Hadley Wickham stoßen, hat er doch zahlreiche R-Erweiterungs-Pakete programmiert (er soll bereits an 55 Paketen mitgewirkt haben! Tendenz steigend), darunter einige der Bekanntesten: ggplot2, dplyr, plyr, reshape, reshape2, stringr, tidyr, lubridate).

DataCamp Zertifizierung: Writing Functions in R
DataCamp Zertifikat: Writing Functions in R – Hadley Wickham und Charlotte Wickham

Einiges in diesem Kurs kam mir bekannt vor – nicht zuletzt, da ich gerade parallel sein Buch Advanced R (Chapman & Hall/CRC the R) lese. (Vielleicht gibt dazu mal einen separaten Blogbeitrag. Advanced R ist ebenso spannend wie anspruchsvoll. Wickham schlägt darin oft Übungen vor, mit denen man sich viele Stunden lang beschäftigen kann …)

Wie immer bei DataCamp war der Kurs sehr praxisorientiert – nach kurzen Videos tippt man R-Code direkt in den Browser und sieht sofort, ob man die Übung verstanden und gelöst hat. (By the way, ich erhalte keine Provision oder andere Vorteile von DataCamp!)

Kursinhalte:

  • Grundlagen: Bestandteile von Funktionen, Argumente, Umgebungen (environments), Datenstrukturen, Schleifen (for)
  • Wann sind Funktionen sinnvoll? Alternative zu Copy & Paste, Fehleranfälligkeit verringern, besser lesbaren und leichter verständlichen Code schreiben
  • Funktionales Programmieren, Funktionen als Argumente anderer Funktionen
  • Das purrr-Paket (ja, mit drei „r“)
  • Pipes (%>%) für noch einfacheren und besser lesbaren Code;
    kannte ich schon von dplyr; anfangs gewöhnungsbedürftig, aber es lohnt sich definitiv! Das wird jeder bestätigen, der schon mal mit Code von anderen R-Anwendern gearbeitet hat, der mehrfach geschachtelt war (mehrere Klammer-Ebenen)

Fehler in Funktionen mit sinnvollen Meldungen abfangen

Besonders interessant wurde es in den letzten beiden Abschnitten: Da ging es darum, wie man Fehler abfangen kann, sinnvolle Fehlermeldungen erzeugen kann, und vor allem gab es mehrere konkrete Beispiele, wie Fehler überhaupt entstehen können.

In so ziemlich jedem R-Kurs wird es früher oder später um die apply-Familie gehen: Funktionen wie apply, sapply, vapply usw. Hier wurde deutlich gezeigt, welche Probleme gerade sapply verursachen kann, wenn es innerhalb von Funktionen eingesetzt wird: es kann unterschiedliche Datentypen zurückliefern und damit zu unerwünschten Ergebnissen führen, die schlimmstenfalls erst später oder gar nicht auffallen.

Ich bin gespannt, ob sich Hadley Wickhams Alternativen, die datentyp-konsistenten Funktionen in purrr, durchsetzen und in absehbarer Zeit in der R-Welt bekannter werden: map, walk, map2, pmap und die typ-spezifischen Funktionen wie map_chr, map_lgl, map_int, map_dbl. Jedenfalls gibt es gute Gründe, sich damit vertraut zu machen.

Sie möchten lernen, eleganteren, besser lesbaren R-Code zu schreiben und Copy & Paste-Anteile zu verringern? Sprechen Sie mich an – ich unterstütze Sie gerne, z. B. mit einem Workshop.

Freue mich über Kommentare!

Wir benutzen Cookies um die Nutzerfreundlichkeit der Webseite zu verbessen. Durch Deinen Besuch stimmst Du dem zu.