Как сказать lapply игнорировать ошибку и обрабатывать следующую вещь в списке?

У меня есть пример функции ниже, которая читает дату в виде строки и возвращает ее как объект даты. Если он читает строку, которую он не может преобразовать в дату, он возвращает ошибку.

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

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

Теперь я хочу использовать lapply и применить эту функцию к списку дат:

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

Но если я хочу применить функцию к списку, когда одна строка в середине двух удачных дат возвращает ошибку, каков наилучший способ справиться с этим?

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

Я предполагаю, что я хочу попробовать перехватить там, но есть ли способ отловить ошибку для строки "foo", в то время как просит lapply продолжить и прочитать третью дату?

Ответы на вопрос(3)

Ваш ответ на вопрос