1

我正在使用 R 的 v3.6.3 和 renv 开发 Mac OSX。在 Rstudio 和 R 中,我可以加载已安装包的库,例如library(ggplot2)作品。但是,当我使用 Rscript 运行脚本时,我收到了消息

Error in library(ggplot2) : there is no package called ‘ggplot2’

根据this SO answer,我需要确保

Sys.getenv('R_LIBS_USER') in R.exe

与的值相同

Rscript.exe -e ".libPaths()"

但值是一样的,都指向renv-system-library我的项目文件夹中的。

那么我该如何解决呢?

4

2 回答 2

2

最好指定lib.locin librarycall

library(ggplot2, lib.loc = '/path/where/library/is/located')
于 2020-04-13T21:06:40.713 回答
0

我设法解决了这个问题。akrun 的回答很有用,但没有用,但给我指出了错误的方向。答案不起作用,因为使用它,我收到以下错误:

    Error: package or namespace load failed for ‘ggplot2’:
 .onLoad failed in loadNamespace() for 'pillar', details:
  call: utils::packageVersion("vctrs")
  error: there is no package called ‘vctrs’

现在vctrs在,'/path/where/library/is/located'所以我认为依赖包不是从该路径加载的,而是 Rscript 的默认值。print(.libPaths()在脚本中放一个

"/usr/local/Cellar/r/3.6.3_1/lib/R/library"

代替

[1] "/Users/Chris/Sites/app_name/renv/library/R-3.6/x86_64-apple-darwin18.7.0"
[2] "/private/var/folders/5_/p_yl0439059b7_jdqzrm0hr40000gr/T/RtmptdHcWN/renv-system-library"

.libPaths()Rstudio 中。查看实际运行 Rscript 程序的 ruby​​ 程序,我发现它正在使用 --vanilla 选项运行,即

Rscript --vanilla script_name

删除 --vanilla 选项解决了这个问题。我认为带有 --vanilla 选项的脚本停止工作,因为我使用 brew 重新安装了 R 以解决我遇到的另一个问题,并且作为其中的一部分发出了以下命令:

brew link --overwrite r 
于 2020-04-14T22:13:24.440 回答