R スクリプトがあり、コード自体にパラメータ値をハードコードするのではなく、複数のコマンドライン パラメータを指定できるようにしたいと考えています。スクリプトは Windows で実行されます。
コマンドラインで指定されたパラメータを R スクリプトに読み込む方法についての情報が見つかりません。それができないとしたら驚きですが、Google 検索で最適なキーワードを使用していないだけかもしれません...
何かアドバイスや推奨事項はありますか?
ベストアンサー1
ディルクの答えはこちら必要なものはすべて揃っています。以下に、最小限の再現可能な例を示します。
exmpl.bat
と の2 つのファイルを作成しましたexmpl.R
。
exmpl.bat
:set R_Script="C:\Program Files\R-3.0.2\bin\RScript.exe" %R_Script% exmpl.R 2010-01-28 example 100 > exmpl.batch 2>&1
あるいは、以下を使用します
Rterm.exe
:set R_TERM="C:\Program Files\R-3.0.2\bin\i386\Rterm.exe" %R_TERM% --no-restore --no-save --args 2010-01-28 example 100 < exmpl.R > exmpl.batch 2>&1
exmpl.R
:options(echo=TRUE) # if you want see commands in output file args <- commandArgs(trailingOnly = TRUE) print(args) # trailingOnly=TRUE means that only your arguments are returned, check: # print(commandArgs(trailingOnly=FALSE)) start_date <- as.Date(args[1]) name <- args[2] n <- as.integer(args[3]) rm(args) # Some computations: x <- rnorm(n) png(paste(name,".png",sep="")) plot(start_date+(1L:n), x) dev.off() summary(x)
両方のファイルを同じディレクトリに保存して起動しますexmpl.bat
。結果は次のようになります:
example.png
何らかの筋書きがあるexmpl.batch
行われたすべてのこと
環境変数を追加することもできます%R_Script%
:
"C:\Program Files\R-3.0.2\bin\RScript.exe"
バッチスクリプトで次のように使用します。%R_Script% <filename.r> <arguments>
RScript
との違いRterm
:
Rscript
よりシンプルな構文を持つRscript
x64ではアーキテクチャを自動的に選択します(R のインストールと管理、2.6 サブアーキテクチャ詳細については)Rscript
options(echo=TRUE)
出力ファイルにコマンドを書き込む場合は、.Rファイルで必要なもの