如何在远程服务器上轻松执行R命令?

Ada*_*ski 11 r remote-access

我在Windows上使用Excel + R在一个相当慢的桌面上.我有一个完全的管理员访问非常快速的基于Ubuntu的服务器.我想知道:如何在服务器上远程执行命令?

我能做的是保存所需的变量saveRDS,并在服务器上加载它们,在服务器上loadRDS执行命令,然后保存结果并在Windows上加载它们.

但这一切都非常具有互动性和手动性,很难定期完成.

有没有办法直接从R做这些东西,比如

  1. 通过例如ssh与服务器连接,
  2. 传输所需的对象(可以手动指定)
  3. 在服务器上执行给定代码并等待结果
  4. 得到结果.

我可以远程运行整个R,但随后它会产生与网络相关的问题.我在Excel中执行的大多数R命令都非常快且数据量很大.我只需要远程执行一些特定的命令,而不是所有命令.

Hei*_*erg 5

这是我的设置.

  1. 使用scp复制代码和数据.(我使用github,所以我从github克隆我的代码.这有利于确保我的工作是可重复的)

  2. (可选)使用sshfs在本地计算机上安装远程文件夹.这允许您使用本地文本编辑器而不是ssh命令行编辑远程文件.

  3. 将您要运行的所有内容放在R脚本中(在远程服务器上),然后在R批处理模式下通过ssh运行它.


小智 3

还有其他一些选项: 1) 您可以使用 Rserve 直接从 R 执行这些操作。请参阅: https: //rforge.net/

请记住,Rserve 可以接受来自 R 客户端的连接,请参阅例如如何使用 R 客户端连接到 Rserve

2) 您可以在 Linux 计算机上设置集群,然后从 Windows 客户端使用这些集群设施。最简单的是使用 Snow,https://cran.r-project.org/package=snow,另请参阅 foreach 和许多其他集群库。