我在Windows上使用Excel + R在一个相当慢的桌面上。我有一个完全的管理员访问非常快速的基于Ubuntu的服务器。我想知道:如何在服务器上远程执行命令?
我可以做的是使用saveRDS
保存所需的变量,并使用loadRDS
将它们加载到服务器上,在服务器上执行命令,然后保存结果并将其加载到Windows上。< / p>
但它非常具有互动性和手动性,很难定期完成。
有没有办法直接从R做这些东西,比如
我可以远程运行整个R,但随后它会产生与网络相关的问题。我在Excel中执行的大多数R命令都非常快且数据量很大。我只需要远程执行一些特定的命令,而不是所有命令。
答案 0 :(得分:5)
这是我的设置。
使用scp复制代码和数据。 (我使用github,所以我从github克隆我的代码。这有利于确保我的工作可以重现)
(可选)使用sshfs在本地计算机上安装远程文件夹。这允许您使用本地文本编辑器而不是ssh命令行编辑远程文件。
将您要运行的所有内容放在R脚本中(在远程服务器上),然后在R批处理模式下通过ssh运行它。
答案 1 :(得分:3)
有几个选项,最简单的是交换安全密钥以避免一直手动输入SSH / SCP密码。在此之后,您可以编写一个简单的R脚本:
您可以使用R的system
命令运行带有必要选项的scp和ssh。
另一个选项是在远程计算机上设置集群工作程序,然后您可以使用clusterExport导出数据并使用clusterEvalQ和clusterApply计算表达式。
答案 2 :(得分:2)
还有一些选择: 1)您可以使用Rserve直接从R完成这些操作。请参阅:https://rforge.net/
请记住,Rserve可以接受来自R客户端的连接,例如参见how to connect to Rserve with an R client。
2)您可以在Linux机器上设置群集,然后从Windows客户端使用这些群集功能。最简单的是使用Snow,https://cran.r-project.org/package=snow,也可以看到foreach和许多其他集群库。