Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # list required packages
- list_r_files = function() {
- list.files(patt = "(?i)\\.(r|rmd)$", full = TRUE, recursive = TRUE)
- }
- regular_expression <- function(x, p) regmatches(x, regexec(p, x))
- last = function(x) x[length(x)]
- scan_packages = function(x) {
- expr = '(library|require)\\("(.+)"\\)'
- m = regular_expression(readLines(x), expr)
- unlist(lapply(m, last))
- }
- installed_packages = function() unique(unlist(library()$results[, 1]))
- # usage
- pack = unique(unlist(lapply(list_r_files(), scan_packages)))
- print(setdiff(pack, installed_packages()))
- install.packages(setdiff(pack, installed_packages()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement