Вот еще одно решение с использованием map
и safely
из purrr
library(purrr)
urls_list <- map(setNames(urls, urls),
safely(~download.file(.x, paste0('~/Desktop/',basename(.x)))))
Filter(function(x) is.null(x[['result']]), urls_list)
Вывод:
$brokenlink.pdf
$brokenlink.pdf$result
NULL
$brokenlink.pdf$error
<simpleError in download.file(.x, paste0(getwd(), "/", basename(.x))): scheme not supported in URL 'brokenlink.pdf'>