gpt4 book ai didi

r - Rscript:没有名为…的软件包?

转载 作者:行者123 更新时间:2023-12-03 10:16:36 29 4
gpt4 key购买 nike

我想使用Rscript在批处理模式下运行R文件,但是它似乎并未加载我需要的库。我得到的具体错误是:

Error in library(timeSeries) : there is no package called 'timeSeries'
Execution halted
但是我确实有 timeSeries软件包,可以从命令行从Rstudio,RGui和R加载它。问题似乎仅在于使用Rscript运行脚本时。
我的系统/环境变量配置为:
C:\Program Files\R\R-3.1.0\bin\x64 (Appended to PATH)
R_HOME = C:\Program Files\R\R-3.1.0
R_User = Patrick
我正在RStudio,RGui和R中从命令行运行相同版本的R。我还从这三个来源检查了 .Library并获得了相同的输出。
如何使用R中正在使用(并已安装)的软件包从命令行运行Rscript?
编辑:
我在 Rscript script.r所在目录的Windows命令行中通过 script.r使用Rscript。 Rscript -e print(.Library)的输出是 [1] "C:/PROGRA~1/R/R-31~1.0/library"这与我提到的其他三个选项一致: [1] "C:/PROGRA~1/R/R-31~1.0/library"但是,如果我将其放在脚本中:
print(.libPaths()) 
library(timeSeries) #This is the package that failed to load
我得到的输出是:
[1] "C:/Program Files/R/R-3.1.0/library"
Error in library(timeSeries) : there is no package called 'timeSeries'
Execution halted
RStudio中的相应调用提供了实际安装软件包的其他路径:
> print(.libPaths())
[1] "C:/Users/Patrick/Documents/R/win-library/3.1" "C:/Program Files/R/R-3.1.0/library"


最佳答案

简而言之,在R.exe中调用Sys.getenv('R_LIBS_USER')返回的值必须与在命令行中调用此返回的值相同:

Rscript.exe -e "Sys.getenv('R_LIBS_USER')"

以上值需要包含在此命令行调用中:
Rscript.exe -e ".libPaths()"

请注意,如果在 R_LIBS_USER in target field of user's shortcut to R_USER 中更改了.Rprofile的值,则R.exe和Rscript.exe之间的的值在R.exe和Rscript.exe之间可能会有所不同,通常,我发现用户库(即 R.exe)是根本没有在Rscript.exe中设置

由于我喜欢将 .libPaths()[2]设置为自己的 R_USER,因此我希望在多种计算机上或Rscript.exe的 USERPROFILE(即 .R)中运行的 .Rprofile文件的顶部包含以下块:
# =====================================================================
# For compatibility with Rscript.exe:
# =====================================================================
if(length(.libPaths()) == 1){
# We're in Rscript.exe
possible_lib_paths <- file.path(Sys.getenv(c('USERPROFILE','R_USER')),
"R","win-library",
paste(R.version$major,
substr(R.version$minor,1,1),
sep='.'))
indx <- which(file.exists(possible_lib_paths))
if(length(indx)){
.libPaths(possible_lib_paths[indx[1]])
}
# CLEAN UP
rm(indx,possible_lib_paths)
}
# =====================================================================

关于r - Rscript:没有名为…的软件包?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27673000/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com