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>Übungsanweisungen
Erstelle eine sichere Version von
read_lines().Erstelle eine Funktion namens
safe_read_discard(), die die sichere Version vonread_lines()ausführt unddiscard()auf dieNULL-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, ___)