かなり遅いデスクトップのWindowsでExcel + Rを使用しています。私は非常に高速なUbuntuベースのサーバーへの完全な管理者アクセス権を持っています。私は疑問に思っています:サーバー上でコマンドをリモートで実行する方法は?
私にできることは、必要な変数をsaveRDS
で保存し、それらをloadRDS
でサーバーにロードし、サーバーでコマンドを実行してから、結果を保存してWindowsにロードすることです。
しかし、それはすべて非常にインタラクティブで手動であり、定期的に行うことはほとんどできません。
Rから直接何かをする方法はありますか?
R全体をリモートで実行することもできますが、ネットワーク関連の問題が発生します。私がExcel内から実行するほとんどのRコマンドは、非常に高速でデータを大量に消費します。すべてではなく、いくつかの特定のコマンドをリモートで実行する必要があります。
さらにいくつかのオプションがあります:1)Rserveを使用してRから直接作業を行うことができます。参照: https://rforge.net/
RserveはRクライアントからの接続を受け入れることができることに注意してください。たとえば RクライアントでRserveに接続する方法 を参照してください。
2)Linuxマシンでクラスターをセットアップし、Windowsクライアントからこれらのクラスター機能を使用できます。最も簡単なのはSnowを使用することです https://cran.r-project.org/package=snow 、foreachや他の多くのクラスターライブラリも参照してください。
これが私の設定です。
Scpを使用してコードとデータをコピーします。 (私はgithubを使用したので、githubからコードを複製します。これには、作業が再現可能であることを確認できるという利点があります)
(オプション)sshfsを使用して、ローカルマシンにリモートフォルダーをマウントします。これにより、sshコマンドラインの代わりにローカルテキストエディタを使用してリモートファイルを編集できます。
実行したいすべてのものを(リモートサーバー上の)Rスクリプトに入れてから、Rバッチモードでsshを介して実行します。
いくつかのオプションがあります。最も簡単なは、SSH/SCPパスワードを常に手動で入力しないように、安全なキーを交換することです。この後、次のような単純なRスクリプトを作成できます。
Rのsystem
コマンドを使用して、必要なオプションを指定してscpおよびsshを実行できます。
別のオプションリモートマシンにクラスターワーカーを設定すると、clusterExportを使用してデータをエクスポートし、clusterEvalQとclusterApplyを使用して式を評価できます。