LoslegenKostenlos starten

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>
Kurs ansehen

Übungsanweisungen

  • Erstelle innerhalb des map()-Aufrufs eine possibly()-Version von read_lines(), die andernfalls 404 zurückgibt.

  • Setze die Namen der Ausgabe.

  • Verwende die Funktion paste() mit dem Argument collapse auf " ", 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)
Code bearbeiten und ausführen