3

R プログラムを使用して、頻繁に更新されるローカルおよびオンライン ソースからデータを収集および更新しています。

これらのソースは固定されているため、プログラムに渡す引数はなく、すべてがルーチンです。

上司は、これをスケジュールされた毎日のタスクとして設定するように求めています。.r ファイルでは不可能であることはわかっています。rファイルを実行可能ファイルにコンパイルする方法はありますか? .exe、.batなど... ...

実行可能ファイルをスタンドアロンにする必要はありません。R をコンピューターに保持できます。

どんな提案でも大歓迎です。

4

3 に答える 3

2

適切な引数で実行するには、標準の OS 機能 ( Unix ではcron/ ) を使用する必要があります。atR

たとえば、必要な機能を追加すると.Rprofile、次のことができます

R --no-save --no-restore -q -e 'MyFunc(my,args)'

または、 R のバッチ実行を使用することもできます。

于 2013-08-07T20:09:23.677 に答える
2

Windows の場合、以下のようなバッチ ファイルでセットアップされた何百ものスクリプトがあります。aNameOfScript.batと aNameOfScript.rが同じフォルダーにあり、Scheduler から .bat ファイルを実行すると、stdout/err からNameOfScript_yyyy-mm-dd.log同じフォルダーにすべてのログが記録されます。私は通常、ログフォルダーを別々に持っていますが、それを追加するには、の定義を変更するだけで済みLOG_FILEます。また、フォルダー内のいくつかのファイルを出力する必要がある場合に備えて、フォルダーを R に渡します。

IF DEFINED ProgramFiles(x86) (
    SET R_SCRIPT="%ProgramFiles(x86)%\\R\\R-2.15.2\\bin\\Rscript.exe"
) ELSE (
    SET R_SCRIPT="%ProgramFiles%\\R\\R-2.15.2\\bin\\Rscript.exe"
)
IF NOT EXIST %R_SCRIPT% GOTO FAIL
SET SCRIPT_DIR=%~dp0
SET SCRIPT_DIR=%SCRIPT_DIR:\=\\%
SET BATCH_FILE=%0
SET BATCH_FILE=%BATCH_FILE:"=%
SET SCRIPT_TO_RUN="%BATCH_FILE:.bat=.r%"
SET day=%DATE:~0,2%
SET month=%DATE:~3,2%
SET year=%DATE:~6,4%
SET yyyymmdd=%year%-%month%-%day%
SET LOG_FILE="%BATCH_FILE:.bat=%"_%yyyymmdd%.log
SET SCRIPT_DIR="%SCRIPT_DIR%"

%R_SCRIPT% --internet2 --max-mem-size=2047M --no-restore --no-save --args %SCRIPT_DIR% < %SCRIPT_TO_RUN% >> %LOG_FILE% 2>&1

PAUSE

EXIT /B 0 
:FAIL
ECHO RScript not found. Failed process
于 2013-08-08T11:01:37.247 に答える
0

C# から R スクリプトを呼び出して、スケジュールされたタスクとして C# プロジェクトを実行することもできます。

于 2013-08-09T15:51:12.530 に答える