0

Rスクリプトを開いて操作する方法を知りたいと思っていました(たとえば、文字列や整数などを送信します)。これまで使用したことはありませんが、サブプロセスはこれを行うための合理的な方法のように思えました。

これまでのところ、私は

process = subprocess.Popen(['/path/to/Rscript --no-save path/to/script.R'], stdout=subprocess.PIPE, stdin=subprocess.PIPE, shell=True)

これはscript.Rを開くのに成功しているように見えますが、私のスクリプトではユーザーに整数を入力するように求めていますが、これを行う方法を完全に整理することはできません. 私が試してみました:

process.communicate(input=1)[0]

しかし、私は間違った木を吠えているようです。サブプロセスは、この入力を受け取ったように見えずに閉じます。

編集: Rpy は、このスクリプトのユーザーが必ずしもそのモジュールとその依存関係にアクセスできるとは限らないため、現時点ではおそらく適切な代替手段ではありません。

4

2 に答える 2

2

パイパーを試してみませんか?

パイプを介して Python で R を使用するための優れたインターフェイスです。

于 2013-04-04T03:07:47.440 に答える
1

EDIT2

そのことについて何?

process = subprocess.Popen(['/path/to/Rscript', '--no-save', 'path/to/script.R'], stdout=subprocess.PIPE, stdin=subprocess.PIPE)

編集1

stdin と stdout を介してプロセス間でのみ文字列を通信できます。

あなたprocess.communicate("1\n")を助けますか?

于 2013-04-02T14:03:56.297 に答える