LoslegenKostenlos starten

Schreibe eine Funktion

Im vorherigen Beispiel haben wir gesehen, wie wir mit safely() nicht erreichbare URLs erkennen können: Wir haben einen kleinen Ablauf geschrieben, der eine sichere Version von read_lines() aufruft und eine Liste der $errors zurückgibt.

In dieser Übung probieren wir einen anderen Ansatz, da wir uns nicht nur auf Fehler konzentrieren. Anstatt eine sichere Funktion zu mappen und anschließend die "error"-Elemente aus den Ergebnissen zu extrahieren, schreiben wir eine Hilfsfunktion, die direkt die NULL-Elemente der Ausgabe von safe_read() mit discard() entfernt.

So können wir statt den $error- oder $result-Teil zu extrahieren sofort erkennen, ob Elemente erreichbar sind (der Inhalt steht dann in $results) oder nicht (dann steht der Fehler in $error).

Der Vektor urls wurde dir bereitgestellt.

Diese Übung ist Teil des Kurses

<Kurs>Fortgeschrittene funktionale Programmierung mit purrr</Kurs>
Kurs ansehen

Übungsanweisungen

  • Erstelle eine sichere Version von read_lines().

  • Erstelle eine Funktion namens safe_read_discard(), die die sichere Version von read_lines() ausführt und discard() auf die NULL-Elemente anwendet.

  • Wende diese Funktion auf die bereitgestellte Liste mit URLs an.

Interaktive praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# Create a safe version of read_lines()
safe_read <- ___

# Code a function that discard() the NULL from safe_read()
safe_read_discard <- function(url){
  ___(___) %>%
    ___(is.null)
}

# Map this function on the url list
res <- ___(urls, ___)
Code bearbeiten und ausführen