在 R 脚本中加载 R 包
Loading R package inside R script
我尝试了几种方法,通过键入 ./Rscript script.R
将 script.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')"
我尝试了几种方法,通过键入 ./Rscript script.R
将 script.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')"