2

RStudio サーバーはヘッドレス R セッションを使用し、帯域幅を節約するためにエンコードされたすべての I/O 操作を渡すようです。これは、独自の GUI を介して動作する Rattle や Latticist などのパッケージを除いて、すべてで機能します。RStudio サーバーを介してこれらのパッケージを使用する方法や、RStudio サーバーの R セッションにアクセスしてこれらのパッケージをリモートで実行する方法はありますか?

X セッションを SSH 経由で転送せずにこれらのパッケージをリモートで実行する効率的な方法があれば、ボーナスです。

4

1 に答える 1

2

これらのグラフィカル プログラムの動作方法が原因で、RStudio インターフェイスでこれが可能かどうかはわかりません。RStudio が R のテキスト入力と出力をキャプチャするのは簡単です。通常のグラフィック出力をキャプチャすることは非常に印象的ですが、それは R で「ネイティブに」行われます。パッケージでさえ、組み込みの R プロット機能を好み、使用していますggplot2lattice独自に、それを渡してgridからgridplot()またはprintが呼び出されます (対話型セッションの REPL で暗黙的に含む)。RCommander、RGL などは外部ライブラリ (Tcl/Tk、OpenGL) を使用し、R 経由ではなく、オペレーティング システム サービスを介して直接インターフェイスをレンダリングします。R はこれらのプログラムからの出力を認識しません。これらのサービスのラッパー関数はまだ返されていません。ローカル RStudio の場合、サービスはローカル ディスプレイに直接転送されるため、これは問題ではありませんが、RStudio サーバーの場合、ディスプレイはありません

別の考慮事項: R が X をキャプチャして転送できると仮定すると、X サーバー (X では、サーバーはディスプレイ/キーボード/その他、クライアントは I/O を必要とするプログラム) がブラウザーで実行されていることを意味します。最新の JavaScript は非常に優れている場合もありますが、X は非常に複雑なコードベースであり、レイテンシーに非常に敏感です。インターネット上で X を実行するのは、ローカル ネットワーク上よりもはるかに遅くなります。プロトコルは、そのようなことを想定して設計されておらず、ほとんどの操作は非常に多くのラウンドトリップを伴います。

より実用的な面では、RStudio を介してほとんどの作業を行うことができ、X 転送を介してグラフィカル コマンドのみを実行できます。

  1. 外部グラフィックス インターフェイスを必要としないすべてのことを行います。
  2. R セッションを ([環境] タブまたはコマンド ライン経由で).RDataプロジェクト ディレクトリに保存します。(実際には別の場所でこれを行うこともできますが、通常はワークスペースが作業ディレクトリに保存されている方が便利です。)
  3. SSH および X 転送を介しcdて、プロジェクト ディレクトリにログインします。
  4. Start R - R は、 として保存されている既存のワークスペースを自動的にロードします.RData。(この動作は で無効にでき--vanillaます。ワークスペースのサイズによっては、R の読み込みに数秒から数分かかる場合があります。
  5. Rattle、Latticist、RCommander、RGL などをお楽しみください。ローカル ネットワークではなくインターネット経由でこれを行う場合は、大きな遅延に備えてください (上記を参照)。
于 2014-06-12T13:22:05.463 に答える