Wie kann ich sagen, dass ich einen Fehler ignorieren und den nächsten Schritt in der Liste ausführen soll?

Ich habe unten eine Beispielfunktion, die ein Datum als Zeichenfolge einliest und es als Datumsobjekt zurückgibt. Wenn eine Zeichenfolge gelesen wird, die nicht in ein Datum konvertiert werden kann, wird ein Fehler zurückgegeben.

testFunction <- function (date_in) {
    return(as.Date(date_in))
    }

testFunction("2010-04-06")  # this works fine
testFunction("foo")  # this returns an error

Nun möchte ich lapply verwenden und diese Funktion auf eine Liste von Daten anwenden:

dates1 = c("2010-04-06", "2010-04-07", "2010-04-08")
lapply(dates1, testFunction)  # this works fine

Aber wenn ich die Funktion auf eine Liste anwenden möchte, wenn eine Zeichenfolge in der Mitte zweier guter Daten einen Fehler zurückgibt, wie gehe ich dann am besten damit um?

dates2 = c("2010-04-06", "foo", "2010-04-08")
lapply(dates2, testFunction)

Ich nehme an, dass ich einen Versuch machen möchte, aber gibt es eine Möglichkeit, den Fehler für den "foo" -String zu finden, während ich lapply auffordere, fortzufahren und das dritte Datum zu lesen?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage