Ниже приведен пример функции, которая считывает дату в виде строки и возвращает ее как объект даты. Если он читает строку, которую он не может преобразовать в дату, он возвращает ошибку.
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 продолжить и прочитать третью дату?