データベースからいくつかのデータを取得し、それに対していくつかの操作を実行し、出力を新しいデータベースにポストするRスクリプトを作成しました。
このスクリプトを毎日特定の時間に実行したいのですが、これを効果的に行う方法が見つかりません。
この問題を解決するために私が見ることができるリソースを誰かが推奨できますか?このスクリプトをWindowsマシンで実行しています。
実際、Windowsでは、Schedulerを使用するために最初にバッチファイルを作成する必要さえありません。
Rスクリプトがmytest.r
であり、D:\mydocuments\
にあるとすると、次のコマンドを含むバッチファイルを作成できます。
C:\R\R-2.10.1\bin\Rcmd.exe BATCH D:\mydocuments\mytest.r
次に、それを新しいタスクとしてWindowsタスクスケジューラに追加し、トリガー条件を設定します。
バッチファイルを省略することもできます。タスクスケジューラのC:\R\R-2.10.1\bin\Rcmd.exe
テキストボックスにprogram/script
を設定し、Arguments
として残りの初期コマンドを指定します:BATCH D:\mydocuments\mytest.r
Windowsタスクスケジューラを介したRタスクのスケジューリング (2015年2月11日に投稿)
taskscheduleR:WindowsタスクマネージャーでRスクリプトをスケジュールするRパッケージ (2016年3月17日に投稿)
[〜#〜] edit [〜#〜]
Cmdウィンドウを最小化するために、バッチファイルの使用を最近採用しました(別の方法が見つかりませんでした)。
具体的には、WindowsタスクスケジューラActions
タブに次のように入力します。
Program/script:
cmd.exe
Add arguments (optional):
/ c start/min D:\ mydocuments\mytest.bat ^&exit
mytest.batの内容:
C:\ R\R-3.5.2\bin\x64\Rscript.exe D:\ mydocuments\mytest.r params
SCHTASKS
プログラムを使用してタスクをセットアップしました。起動時にスクリプトを実行するには、次の行に沿って何かを書くでしょう。
SCHTASKS /Create /SC ONSTART /TN MyProgram /TR "R CMD BATCH --Vanilla d:\path\to\script.R"
SCHTASKS
の詳細については、 このWebサイト を参照してください。詳細は MicrosoftのWebサイト で。
Windowsタスクスケジューラ を使用できます。
現在、RStudioにはこれを行うためのオプションが組み込まれており、最初にパッケージの下にスケジューラーを実行します。
install.packages('data.table')
install.packages('knitr')
install.packages('miniUI')
install.packages('shiny')
install.packages("taskscheduleR", repos = "http://www.datatailor.be/rcube", type =
"source")
インストール後
**TOOLS -> ADDINS ->BROWSE ADDINS ->taskscheduleR -> Select it and execute it.**
これらの手順を組み合わせて実行すると、"Argument Batch Ignored"
R.exeの実行後にエラーが発生しました。これを試してください。うまくいきました。
Windowsタスクスケジューラで:
置換BATCH "C:\Users\desktop\yourscript.R"
in引数フィールド
と
CMD BATCH --Vanilla --slave "C:\Users\desktop\yourscript.R"