在 R 脚本中加载 R 包

Loading R package inside R script

我尝试了几种方法,通过键入 ./Rscript script.Rscript.R 中的几个特定包加载到 运行 终端中的脚本。脚本没有问题,但是当我想加载包时出现错误,例如 tidyverse.

Error: package or namespace load failed for ‘tidyverse’ in rbind(info, getNamespaceInfo(env, "S3methods")):
number of columns of matrices must match (see arg 2)
In addition: Warning message:
package ‘tidyverse’ was built under R version 3.6.0

基于此 link Installing a package in R inside a script 我试图通过在 Rstudio 中键入 .libPaths() 来找到库的位置然后我给出了在 [=11 中加载包的路径=] 通过键入 library(tidyverse,lib.loc="/Library/Frameworks/R.framework/Versions/3.6/Resources/library")

我又遇到同样的错误。 您能否提及错误发生在哪里?谢谢

解决方案是通过require()

加载包
require(dplyr)

注意 it is not recommended 使用 require() 加载包。如果使用 library() 失败,那么 require() 就没有理由工作。

从你的问题来看,你似乎在当前文件夹 (./Rscript) 中使用了某个 Rscript 二进制文件,这可能不是使用相同版本的 R正如 RStudio 所做的那样。

你可以试试运行

Rscript -e "library(tidyverse)"

看看能不能加载tidyverse。请注意,我在这里使用 Rscript 命令而不是 ./Rscript。这应该指向您安装的最新 R 版本和 RStudio 使用的相同版本。

如果错误仍然存​​在,您可以尝试使用

重新安装tidyverse
Rscript -e "install.packages('tidyverse')"