gpt4 book ai didi

Rscript 和包 : How and when to determine what packages are loaded?

转载 作者:行者123 更新时间:2023-12-04 17:08:51 25 4
gpt4 key购买 nike

我要执行一个脚本file.R使用 Rscript .在 file.R ,我使用包dplyr .

# file.R
df <- data.frame(ID,x,y,z,...)
library(dplyr)
filter(df, ID != "null")
......

如果我没有在批处理文件中指定任何选项,一切都可以正常运行 file.R包括行 library(dplyr)
# 1) no specification of packages in the batch file  
Rscript.exe file.R arg1 arg2 arg3 > outputFile.Rout 2>&1

但是,如果我添加 default-packages=utils在批处理文件中,
# 2) specification of packages utils in the batch file
Rscript.exe default-packages=utils file.R arg1 arg2 arg3 > outputFile.Rout 2>&1
file.R的部分使用 dplyr不再起作用( Error in filter(df, ID != 'null') : Object 'ID' could not be found)

由于 ?Rscript
--default-packages=list
where list is a comma-separated list of package names or NULL

我尝试添加 --default-packages=utils,dplyr ,
# 3) specification of packages utils and dplyr in the batch file
Rscript.exe default-packages=utils,dplyr file.R arg1 arg2 arg3 > outputFile.Rout 2>&1

这会导致与 2 中相同的错误

为什么是批处理文件 1唯一有效的?我在所有 3 个备选方案中都调用了相同的 R 脚本。

最佳答案

--default-packages参数指定默认情况下要加载的包。它不会添加到默认包列表中 - 它会替换列表。这意味着您还需要指定您所依赖的所有其他基本包。您可以通过创建一个调用 sessionInfo() 的简单测试脚本来看到这一点。

在文件“env.R”中:

sessionInfo()

从终端调用: Rscript env.R
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] stats graphics grDevices utils datasets base

现在我修改那个调用: Rscript --default-packages=utils env.R
R version 3.1.2 (2014-10-31)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United States.1252
[2] LC_CTYPE=English_United States.1252
[3] LC_MONETARY=English_United States.1252
[4] LC_NUMERIC=C
[5] LC_TIME=English_United States.1252

attached base packages:
[1] utils base

因此,您确实需要指定其他缺少的包。
RScript --default-packages=stats,graphics,grDevices,utils,datasets,base,methods env.R

我也在那里扔了方法。

话虽如此,如果您在使用 RScript 运行它时没有任何问题,我不明白您为什么要尝试弄乱 default-packages 参数。似乎您只是在为自己制造问题,除非您正在尝试解决您没有告诉我们的其他问题。

关于Rscript 和包 : How and when to determine what packages are loaded?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29626672/

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