Alles in einem Aufruf
Um diesen Code noch reproduzierbarer zu machen, erstellen wir eine Funktion, die alles in einem Aufruf erledigt. Wir haben dir bereits ein Gerüst für diese Funktion bereitgestellt – jetzt bist du dran, es zu vervollständigen!
In den vorherigen Übungen haben wir den Ablauf in mehrere Schritte aufgeteilt. Jetzt soll das in nur einem Aufruf passieren: Wir schreiben dafür eine Funktion, die eine Liste von URLs entgegennimmt und die Namen der Elemente zurückgibt, die nicht erreichbar sind.
Sobald du diese Funktion geschrieben hast, kannst du sie speichern und immer dann wiederverwenden, wenn du eine Liste von URLs bereinigen musst. Und vielleicht kommt sie ja in ein Package ;)
Die Liste urls aus der vorherigen Übung steht dir in deinem Workspace zur Verfügung.
Diese Übung ist Teil des Kurses
<Kurs>Fortgeschrittene funktionale Programmierung mit purrr</Kurs>Übungsanweisungen
Erstelle innerhalb des
map()-Aufrufs einepossibly()-Version vonread_lines(), die andernfalls404zurückgibt.Setze die Namen der Ausgabe.
Verwende die Funktion
paste()mit dem Argumentcollapseauf" ", um jede Unterliste in einen Character-Vektor zu verwandeln.Entferne die Elemente, die gleich 404 sind.
Interaktive praktische Übung
Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.
url_tester <- function(url_list){
url_list %>%
# Map a version of read_lines() that otherwise returns 404
map( ___(___, otherwise = ___) ) %>%
# Set the names of the result
___( urls ) %>%
# paste() and collapse each element
map(___, ___ = " ") %>%
# Remove the 404
___(___) %>%
names() # Will return the names of the good ones
}
# Try this function on the urls object
url_tester(urls)