我有一个在RStudio中运行良好的R脚本。我正在尝试安排它使用RScript.exe在Windows任务计划程序中定期运行。它失败了。
然后我尝试从命令行运行它并注意到下面的错误。
D:\development\projects\SSCDAPOC\trunk\src\scripts>"C:\Program Files\R\R-3.2.2\bin\x64\Rscript.exe" batch_read_rss_selected.R
Loading required package: xml2
Error in as.vector(x, "list") :
cannot coerce type 'environment' to vector of type 'list'
Calls: do.call ... <Anonymous> -> lapply -> as.list -> as.list.default
Execution halted
当我直接在RStudio中获取相同的脚本时,它工作得很好。
有关我如何调查和解决此问题的任何提示?
以下是使用时的R会话信息:
> sessionInfo()
R version 3.2.2 (2015-08-14)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1
locale:
[1] LC_COLLATE=English_Singapore.1252 LC_CTYPE=English_Singapore.1252
[3] LC_MONETARY=English_Singapore.1252 LC_NUMERIC=C
[5] LC_TIME=English_Singapore.1252
attached base packages:
[1] stats graphics grDevices utils datasets methods base
other attached packages:
[1] rvest_0.3.1 xml2_0.1.2
loaded via a namespace (and not attached):
[1] httr_1.0.0 selectr_0.2-3 R6_2.1.1 magrittr_1.5 tools_3.2.2 curl_0.9.4
[7] Rcpp_0.12.2 stringi_1.0-1 stringr_1.0.0 XML_3.98-1.3
答案 0 :(得分:3)
经过一些进一步的搜索后,我找到了两种方法来完成这项工作:
Rscript.exe batch_read_rss_selected.R
之前,我使用了R.exe -f batch_read_rss_selected.R
。这很有用,并且还在屏幕上的脚本中抛出了每一行代码。library(methods)
。从R内部(在我的情况下是RStudio IDE)中运行时,脚本似乎不需要这样做,但是我的脚本需要Rscript.exe。现在它在命令行和R环境中都执行类似的操作。答案 1 :(得分:0)
我使用 cmd
在 Task Scheduler 中调用 Rscript.exe
,然后给它一个到我的 R 脚本的绝对路径,它进一步定义了到 rmarkdown 文件的输出。我应该注意到,我还必须在我的计算机上安装 pandoc 才能使其工作 (https://pandoc.org/installing.html)。但我现在有一个每天运行的 rmarkdown 报告,它直接从 MSAccess 数据库中提取数据,为我提供一份摘要,我可以发送给我的老板和员工。
代码:
program/script = cmd
additional argument =
/c C:/<yourpath>/Rscript.exe "C:/<yourpath>/run_report.R"
在 run_report.R 中我指定输出:
rmarkdown::render("C:/<yourpath>/filename.Rmd", output_format= NULL,output_file="C:/yourpath>/filename.pdf", knit_root_dir=NULL, runtime="auto", clean=TRUE, run_pandoc = TRUE, quiet=TRUE)