将本地库与先决条件一起加载到R中
例如,我有一个本地将本地库与先决条件一起加载到R中,r,install.packages,R,Install.packages,例如,我有一个本地扫帚包,它有几个必备库,例如后端口 install.packages("broom",lib=file.path(Sys.getenv("userprofile"),"desktop","project")) 我发现以下库没有同时加载必要的先决条件 library(broom,lib.loc=file.path(Sys.getenv("userprofile"),"d
扫帚
包,它有几个必备库,例如后端口
install.packages("broom",lib=file.path(Sys.getenv("userprofile"),"desktop","project"))
我发现以下库
没有同时加载必要的先决条件
library(broom,lib.loc=file.path(Sys.getenv("userprofile"),"desktop","project"))
自从
install.packages
一起下载之后,我就已经具备了这些先决条件。在加载我想要使用的包(即,broom
)之前,是否应该加载所有必备库(如backport
)?我制作了这个函数,基本上加载传递包的依赖项,现在您只需在加载broom
之前运行它,然后它就会加载依赖项
# loads dependencies of passed packages
# can be used in two forms :
# load.dep(broom, tidyr)
#. load.dep("broom", "tidyr")
load.dep <- function(...){
x <- as.list(substitute(...()))
stopifnot(length(x)>0)
x <- sapply(x, as.character)
avp <- available.packages()
pkgs <- unlist(strsplit(avp[x, c("Imports","Depends")], split=" ?(\\([^)]+?\\))?, ?"), use.names=F)
invisible(lapply(pkgs[!grepl('^(\\n|R )', pkgs)], library, character.only=T))
}
#加载传递的包的依赖项
#可采用两种形式:
#装载深度(扫帚,三年)
#.load.dep(“扫帚”、“三天”)
load.dep加载库时,通常不需要指定依赖项。是否确实在file.path(Sys.getenv(“userprofile”)、“desktop”、“project”)
中安装了依赖项?是的,第一个代码将backport
以及broom
安装到桌面。
# loads dependencies of passed packages
# can be used in two forms :
# load.dep(broom, tidyr)
#. load.dep("broom", "tidyr")
load.dep <- function(...){
x <- as.list(substitute(...()))
stopifnot(length(x)>0)
x <- sapply(x, as.character)
avp <- available.packages()
pkgs <- unlist(strsplit(avp[x, c("Imports","Depends")], split=" ?(\\([^)]+?\\))?, ?"), use.names=F)
invisible(lapply(pkgs[!grepl('^(\\n|R )', pkgs)], library, character.only=T))
}