Я использую этот код, чтобы найти все необходимые пакеты в сценарии R.
# list packages in an R file
filename <- "C:/Data/Documents/R/myFile.R"
tmp <- getParseData(parse(filename, keep.source=TRUE))
crit <- quote(token == "SYMBOL_FUNCTION_CALL")
tmp <- dplyr::filter(tmp, .dots = crit)
tmp <- unique(sort(tmp$text))
src <- paste(as.vector(sapply(tmp, find)))
outlist <- tapply(tmp,factor(src),c)
outlist
Затем вы можете посмотреть выходные данные и установить те, которые у вас еще нет. Не автоматический, но он доставит вам большую часть пути!
(примечание - я изначально не писать этот код ... нашел его где-то)
Edit: @Rich Скривен - вы правильно! Я целенаправленно поместил новую функцию в скрипт и был указан в Character (0). Вам нужно было бы найти пакет, используя? возможно, затем установить его.
Редактировать 2: Я работал над проблемой и придумал это, чтобы добавить к вышеуказанному коду. Он найдет пакеты, которые не привязаны, и если они находятся в библиотеке, прикрепите их. Если нет, установите их.
library(sos)
toInstall <- outlist$`character(0)`
for(i in 1:length(toInstall)){
newPackage<-findFn(toInstall[i])[1,4]
if (!require(newPackage,character.only = TRUE)) {
install.packages(newPackage)
library(newPackage,character.only = TRUE)
}
print(newPackage)
}
Построить пакет. Затем, когда вы устанавливаете, все зависимости могут быть установлены. – Roland
https://github.com/brianhigh/imp – hrbrmstr