Advertisement
Guest User

Untitled

a guest
Feb 1st, 2015
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.59 KB | None | 0 0
  1. # list required packages
  2. list_r_files = function() {
  3. list.files(patt = "(?i)\\.(r|rmd)$", full = TRUE, recursive = TRUE)
  4. }
  5.  
  6. regular_expression <- function(x, p) regmatches(x, regexec(p, x))
  7.  
  8. last = function(x) x[length(x)]
  9.  
  10. scan_packages = function(x) {
  11. expr = '(library|require)\\("(.+)"\\)'
  12. m = regular_expression(readLines(x), expr)
  13. unlist(lapply(m, last))
  14. }
  15.  
  16. installed_packages = function() unique(unlist(library()$results[, 1]))
  17.  
  18. # usage
  19. pack = unique(unlist(lapply(list_r_files(), scan_packages)))
  20. print(setdiff(pack, installed_packages()))
  21. install.packages(setdiff(pack, installed_packages()))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement