[R] getting to a point where packages are installed and "ready to use", without unnecessarily reinstalling packages
Kelly Thompson
kt1572757 @end|ng |rom gm@||@com
Tue Oct 25 15:54:03 CEST 2022
I have R packages I want to use.
Q. What is the "best" way to get to a point where all of the packages
are installed and "ready to use", AND where I only install or
re-install a package if doing so is needed?
#I searched the web for insights and found these:
https://hohenfeld.is/posts/check-if-a-package-is-installed-in-r/
https://stackoverflow.com/questions/9341635/check-for-installed-packages-before-running-install-packages
Based on what I read there, I "think" I should use the require function.
Here is what I came up with.
Is there anything "wrong" with this code, and are there any ways I can
improve the code?
### START OF REPRODUCIBLE CODE
#install and load packages (list the packages I want in a vector,
check if they are available to use, install if needed, load and
attach, review)
#create a vector with the character vector of the name(s) of
package(s) I want to use
packages_i_want_to_use <- c('RODBC', 'data.table', 'matrixStats',
'plyr', 'MASS', 'dplyr', 'lubridate')
#packages_i_want_to_use <- c("this_pac_does_not_exist", "abcz", "lubridate")
#use the require function to check if the package(s) is (are) available
packages_exist_true_false <- sapply(X = packages_i_want_to_use, FUN =
require, character.only = TRUE, quietly = TRUE)
# create a vector with the names of the packages that need to be installed
packages_to_install <-
packages_i_want_to_use[packages_exist_true_false == FALSE]
#specify the repo(s) AKA CRAN mirror I want to use
myrepo <- 'https://ftp.osuosl.org/pub/cran/'
#install the package(s)
install.packages(pkgs = packages_to_install, repos = myrepo)
#load and attach the packages_i_want_to_use using the library function
sapply(X = packages_i_want_to_use, FUN = library, character.only = TRUE)
#review
#review to determine if the packages are available, using require()
packages_exist_true_false_review <- sapply(X = packages_i_want_to_use,
FUN = require, character.only = TRUE, quietly = TRUE)
packages_exist_true_false_review
### END OF REPRODUCIBLE CODE
More information about the R-help
mailing list