R使用system()将数据帧传递给另一个程序

scr*_*Owl 5 stdin r input

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

df1 <- runif(20)
write(df1, file="file1.txt")
system("myprogram file1.txt")
Run Code Online (Sandbox Code Playgroud)

我有两个问题:

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

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

谢谢你的任何建议.

Dir*_*tel 7

你可以写任何R调用连接,包括网络套接字.

因此,进程A可以写入网络,进程B可以在没有任何磁盘文件的情况下读取它,看看help(connections)哪个甚至在"示例"部分中有一个工作示例.

这里的一般主题是序列化,R为您做到了这一点.您还可以使用编码数据结构元数据的工具将数据传递给其他程序 - 例如Google的协议缓冲区(RProtoBuf包支持R ).