Tôi có một chức năng ví dụ dưới đây mà đọc trong một ngày như một chuỗi và trả về nó như là một đối tượng ngày tháng. Nếu nó đọc một chuỗi mà nó không thể chuyển đổi thành một ngày, nó sẽ trả về một lỗi.Làm thế nào để nói lapply để bỏ qua một lỗi và xử lý điều tiếp theo trong danh sách?
testFunction <- function (date_in) {
return(as.Date(date_in))
}
testFunction("2010-04-06") # this works fine
testFunction("foo") # this returns an error
Bây giờ, tôi muốn sử dụng lapply và áp dụng chức năng này trên một danh sách các ngày:
dates1 = c("2010-04-06", "2010-04-07", "2010-04-08")
lapply(dates1, testFunction) # this works fine
Nhưng nếu tôi muốn áp dụng các chức năng trên một danh sách khi một chuỗi ở giữa hai ngày tốt sẽ trả về lỗi, cách tốt nhất để giải quyết vấn đề này là gì?
dates2 = c("2010-04-06", "foo", "2010-04-08")
lapply(dates2, testFunction)
Tôi giả sử rằng tôi muốn thử bắt ở đó, nhưng có cách nào để bắt lỗi cho chuỗi "foo" trong khi yêu cầu lapply để tiếp tục và đọc ngày thứ ba không?
Rất liên quan chặt chẽ: http://stackoverflow.com/questions/1395622/debugging-lapply-sapply-calls – Shane