Use tryCatch. Here is an example:
checkInstallPackage = function(packName) {
tryCatch(library(packName),
error = function(errCondOuter) {
message(paste0("No such package: ", packName, "\n Attempting to install."))
tryCatch({
install.packages(packName)
library(packName, character.only = TRUE)
},
error = function(errCondInner) {
message("Unable to install packages. Exiting!\n")
},
warning = function(warnCondInner) {
message(warnCondInner)
})
},
warning = function(warnCondOuter) {
message(warnCondOuter)
},
finally = {
paste0("Done processing package: ", packName)
})
}
invisible(lapply(c("EnsembleBase",
"fastcluster",
"glarma",
"partools"), checkInstallPackage))
checkInstallPackage("blabla")
source
share