2015-11-11 12 views
12

外部ツールをRから実行する必要があり、そのツールでプロセスエラーが発生していればそれが発生します。 私は自分の仕事に慣れて何かをする3つの機能を知っている:それらをテストするRシステム関数は常にエラー127を返します

shell, system and system2. 

Thying、私はコマンド

shell("notepad") 

はメモ帳を開くことがわかります。私が知る限り、シェルはエラーをチェックすることはできません(標準エラーを調べるインターフェースはありません)。

私はそれらのコマンドをしようとし

system("notepad") 

または

system2("notepad") 

Rフリーズ呼び出します。私は私のコメントで述べたように

Warning message: 
running command '"start notepad"' had status 127 
+0

この問題は、PATHにないnotepadになってしまい、それを実行するためにRには見えません。私のマシンでは、 'system(" java -version ")'を問題なく呼び出すことができます。不思議なことに、メモ帳をPATHに追加した後でもRから起動することができませんでした。 –

+0

私は 'system(" git version ")'を動作させることもできます。 Rの非コマンドラインプログラムに問題がある可能性があります。Rからメモ帳を起動したいのはなぜですか? –

+0

> system( "git version") 警告メッセージ: 実行中のコマンド 'git version'はステータスが127 – Powerfool

答えて

4

を警告

system("start notepad") 

または

system2("start notepad") 

リターンを呼び出す

は、Rのドキュメントでは、Windowsでsystem()機能が起動しないことが明らかになりました別のシェル(必要な場合)。

documentationからsystem()のために:

最も重要な違いは、Unixに似上のことであるコマンドラインコマンドはsystem()で実行されますが、別のウィンドウを必要とメモ帳が、実行されない理由はここにありますシステムはコマンドを実行するシェルを起動します。 Windowsの場合、コマンドは直接実行されます。シェルを使用してコマンドを実行するインターフェイスのシェル(デフォルトでは、Windowsシェルcmd.exe(POSIXシェルとは多くの相違点があります)。 DavidTsengの答え(それをupvoteするのに十分な評判を持っていないため申し訳ありません)@適応

3
system("bash -l", input = "notepad") 
12

...

system("cmd.exe", input = "notepad") 

はWindowsで私のために働きました。

関連する問題