如何加载硬盘上本地存在的R包?

时间:2019-06-29 10:58:48

标签: r package

如果我有一个R包是我从本地位置~/mypkg的另一个存储库中派生的,是否可以直接从该位置加载而不需要使用install.packages。我正在寻找的功能类似于Python中的site.addsitedir

我尝试了以下几种变化:

library('mypkg', lib.loc = "/home/ncw135/Documents/mypkg")

devtools::load_all('/home/ncw135/Documents/mypgk')

由于以下原因而失败:

Loading mypkg
Error in get(method, envir = home) : 
  cannot open file '/home/ncw135/R/x86_64-pc-linux-gnu-library/3.6/mypkg/R/mypkg.rdb': No such file or directory
In addition: Warning messages:
1: In .registerS3method(fin[i, 1], fin[i, 2], fin[i, 3], fin[i, 4],  :
  restarting interrupted promise evaluation
2: In get(method, envir = home) :
  restarting interrupted promise evaluation

尝试使用其功能之一后。

发表评论

我要更改的仓库是here

1 个答案:

答案 0 :(得分:1)

否,您必须先安装软件包才能安装它。如果您不希望它永久安装,则可以设置一个临时库,将其安装在此处,然后从此处进行加载,如下所示:

templib <- tempfile()
dir.create(templib)
.libPaths(templib)
install.packages("~/mypkg", lib = templib, type = "source", repos = NULL)

之后,library(mypkg)(使用~/mypkg/DESCRIPTION中给出的任何软件包名称)将加载临时安装的软件包。关闭会话时,它将被删除(连同此后安装的所有其他软件包一起进入同一个库),并且templib被自动删除。 (如果您的会话崩溃,有可能templib不会被删除,但以后的会话中不会重新使用它。)