find_used_packages <- function(script_location){
script <- readLines(script_location)
called <- grep('library\\(|require\\(',script,value = TRUE)
potentially_called <- gsub(' ','',as.character(
sapply(called,function(x){
strsplit(gsub('library\\(|require\\(|[^[:alnum:][:space:]]','',x),'\\)')[[1]][1]
})
))
potentially_direct <- as.character(
unique(
do.call(rbind,(
lapply(grep('::',script,value = TRUE),function(x){
all_direct <- grep('::',strsplit(x,'[^[:alnum:]:\\:\\::]')[[1]],value=TRUE)
data.frame('direct_packages'=do.call(c,lapply(all_direct,function(y){
strsplit(y,'::')[[1]][1]
})))
})
)
)$direct_packages
)
)
identified <- unique(c(potentially_called,potentially_direct))
all <- unique(
c(
as.character(data.frame(available.packages())$Package),
unlist(lapply(.libPaths(),list.files))
)
)
return(identified[identified%in%all])
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.