1. ホーム
  2. command-line

[解決済み】Rスクリプトからコマンドラインパラメータを読み込むにはどうすればよいですか?

2022-04-01 11:21:40

質問

Rスクリプトで、いくつかのコマンドラインパラメータを指定できるようにしたい(コード自体にパラメータ値をハードコードするのではない)。 このスクリプトはWindowsで実行されます。

コマンドラインで提供されたパラメータをRスクリプトに読み込む方法についての情報が見つからない。 もしかしたら、私のGoogle検索のキーワードが悪いだけかもしれませんが...。

何かご指摘やお勧めがあれば教えてください。

解決方法は?

ダークの回答はこちら が必要な全てです。再現性のある最小限の例を紹介します。

2つのファイルを作りました。 exmpl.batexmpl.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>

との相違点 RScriptRterm :

  • Rscript はよりシンプルな構文です。
  • Rscript は、x64 では自動的にアーキテクチャを選択します ( Rのインストールと管理、2.6 サブアーキテクチャ をご覧ください)
  • Rscript ニーズ options(echo=TRUE) 出力ファイルにコマンドを書き込む場合は、.R ファイルにある