[解決済み] Rスクリプトをコマンドライン(ターミナル)で使用するにはどうしたらよいですか?
質問
コマンドラインから簡単なプロットを行うためのRスクリプトがあると非常に便利です。 しかし、bashスクリプトからRを実行するのは全く便利ではありません。 理想は次のようなものでしょう。
#!/path/to/R
...
または
#!/usr/bin/env R
...
というのがありますが、どちらもうまくいっていません。
もう一つの選択肢は、スクリプトを純粋にRに保つことです、例えば
script.R
で起動し
R --file=script.R
などで呼び出すことができます。 しかし、時にはスクリプトが不明瞭なコマンドラインスイッチに依存し、その時点でコードの一部がスクリプトの外に存在することがあります。 例: ローカルの .Rprofile を使って bash から R に何かをこっそり入れる場合、必要なスイッチはすべて次のようになります。
--vanilla
を除くすべてを意味します。
--no-init-file
.
もう一つの選択肢は、Rフラグを保存して苦もなく実行可能なbashスクリプトで、Rスクリプトを呼び出すことです。 問題は、この場合、1つのプログラムが2つのファイルに分割され、同期を取り、新しいマシンに一緒に転送する必要があることです。
私が現在最も嫌っているオプションは、bash スクリプトに R を埋め込むことです。
#!/bin/bash
... # usage message to catch bad input without invoking R
... # any bash pre-processing of input
... # etc
R --random-flags <<RSCRIPT
# R code goes here
RSCRIPT
すべてが1つのファイルに収まっています。 実行可能で、簡単に引数を扱えます。 問題は、このようにbashとRを組み合わせることで、どのIDEもどちらかで失敗しない可能性をかなり排除してしまうことで、私の心はとても痛むのです。
私が見逃している何か良い方法があるのでしょうか?
どのように解決するのですか?
の内容
script.r
:
#!/usr/bin/env Rscript
args = commandArgs(trailingOnly = TRUE)
message(sprintf("Hello %s", args[1L]))
最初の行は
の行です。
. を使用するのがベストプラクティスです。
/usr/bin/env Rscript
を使うのがベストプラクティスです。そうしないと、他のコンピュータでスクリプトが壊れる危険性があります。
次に、(コマンドラインで)実行可能なものにします。
chmod +x script.r
コマンドラインからの起動。
./script.r world
# Hello world
関連
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
[解決済み] MySQLでコマンドラインを使用してSQLファイルをインポートするにはどうすればよいですか?
-
[解決済み] Bashでコマンドライン引数を解析するには?
-
[解決済み] Bashでコマンドの出力に変数を設定するにはどうすればよいですか?
-
[解決済み] Git上でシェルコマンドを実行する際に使用するSSH-keyの秘密鍵を指定する方法は?
-
[解決済み] MySQLでコマンドラインを使用してユーザーアカウントのリストを取得するにはどうすればよいですか?
-
[解決済み] コマンドラインから .bash_profile を再読み込みする方法は?
-
[解決済み] コマンドラインからすべての環境変数をリストアップ
-
[解決済み] ターミナルで現在の行をクリア/削除するにはどうすればよいですか?
-
[解決済み】rakeタスクにコマンドライン引数を渡す方法
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
RStudio の "plot.new() : figure margins too large" 問題を解決する。
-
[解決済み] Rの%*%の意味 [重複]について
-
[解決済み] コマンドラインからRスクリプトを実行する
-
[解決済み] ベクトル中のxの値を持つ要素の個数を数える
-
[解決済み] データフレームのリストを行単位で1つのデータフレームに結合する
-
[解決済み】RでCRANミラーを選択する方法
-
[解決済み】data.frameのグループごとの平均値【重複】について
-
[解決済み】自作関数を書くときにRの省略機能を使うには?
-
[解決済み] [Solved] data.frameのカラムをベクトルに変換する?
-
[解決済み] ggplot2 で個々のファセットにテキストをアノテートする