2015-02-24 46 views
1

我有一个R脚本,我在笔记本电脑上编程。完成之后,我将R脚本FTP到我的大学集群并在那里运行我的代码(如果需要,可以并行运行)。我的大部分函数都会返回我想用ggplot绘制的数据框。这非常好,但是我想用tikzDevice为我的情节创建tikz(乳胶代码),使其具有与我的论文相同的字体和样式。有没有办法在R中从服务器发送数据帧到客户端?

问题: 由于缺乏LaTeX软件包,我无法在大学集群上运行tikzdevice。由于没有sudo访问权限,我也无法安装它们。从本质上讲,这条路线对我来说是死路一条。

解决方案: 我可以在我自己的笔记本电脑上运行tikzDevice。由于我正在我的笔记本电脑上处理我的乳胶文档(论文),因此它是一个无缝的\include

问题是数据(作为数据框)存在于大学集群中。我可以将数据框保存为文本文件,将它们下载到我的笔记本电脑上,然后将它们删除,但这会杀死我的生产力。

是否有任何pacakges,工具,软件,让我从大学服务器“提取”我的数据的任何东西?

一个可能的解决方案是https://gist.github.com/SachaEpskamp/5796467 但我不知道如何使用它。

注意:我也不知道SE网络的哪个部分可以继续。

+0

'系统(sprintf的(“SCP%S “,filename))'? – 2015-02-24 04:15:05

+0

应该能够将'save()'数据框导出为.Rdta文件并让任何R安装程序读取它们。所以如果你可以通过ftp发送到集群,你也应该可以通过ftp来读取。我没有看到问题。 – 2015-02-24 04:45:01

+0

@BondedDust这是一个解决方案,是的,但我花更多时间更新代码 - >上传 - >运行功能 - >下载结果 - >创建情节。 我想知道是否有办法在我的R和服务器的R之间建立某种连接。我还通过电子邮件发送了我的IT人员,看他是否能以某种方式“打开一个端口”,以便我可以直接访问它。最好的解决方案是,如果我可以将我的服务器文件夹挂载到Windows上 – masfenix 2015-02-24 04:47:25

回答

1

我找到了解决这个问题的解决方法。

对于希望从服务器/客户端来回传输数据的用户,您可以通过序列化来发送和接收对象。

在服务器上,使用saveRDS命令,在客户端上使用readRDS命令。为了提供一个URL来readRDS,你必须使用gzcon,所以像下面这样:

con = gzcon(url("http://path.com/to/your/object/serialized")) 
a = readRDS(file = con) 

显然,这取决于安装在服务器上(如HTTP)的一些协议

相关问题