5

我有一个数据框,我使用system(). 在当前设置中,我首先将数据框的内容写入文本文件,然后让system()命令查找创建的文本文件。

df1 <- runif(20)
write(df1, file="file1.txt")
system("myprogram file1.txt")

我有两个问题:

1)有没有办法直接传递数据框而不编写文本文件?

2)如果没有,有没有办法将内存中的数据作为文本格式的实体传递而不将文件写入磁盘?

感谢您的任何建议。

4

1 回答 1

7

您可以写入任何 R 调用的连接,包括网络套接字。

因此,进程 A 可以写入网络,而进程 B 可以在不涉及任何磁盘文件的情况下读取它,请参阅help(connections)“示例”部分中的工作示例。

您在这里的一般主题是序列化,而 R 会为您做到这一点。您还可以使用对有关数据结构的元数据进行编码的工具将数据以这种方式传递给其他程序,例如 Google 的协议缓冲区(RProtoBuf包在 R 中支持)。

于 2012-08-15T15:55:17.433 回答