1
我在一台机器上的R实例中将大量数据加载到内存中,并且我正在使用Rserve允许从远程客户端访问此数据。我希望能够远程更改data.frame,如添加列或更改值,并且我希望这些更改可供其他客户端使用。用Rserve更改内部数据
# server side
> xxx<-data.frame(a=1:3,b=4:6)
> run.Rserve(port = 6311, ...)
# client side
> cc<-RSconnect(port=6311, ...)
> RSeval(cc,'xxx$c<-7:9')
> RSeval(cc,'xxx')
a b c
1 1 4 7
2 2 5 8
3 3 6 9
然而,当我与第二客户端连接它不会看到的变化:
# another client
> cc2<-RSconnect(port=6311, ...)
> RSeval(cc2,'xxx')
a b
1 1 4
2 2 5
3 3 6
当服务器停止内部数据也不变。这些更改仅适用于创建它们的客户端,而不是我真正需要的。
有什么方法可以使这项工作?
我要么使用数据的基础上或外部平面文件要被读取/由那些不同会话写入。使用'data.table''fread'和'fwrite'你不会注意到任何过载假设的数据是合理的。 –
谢谢,我打算这样做,但后来我找到了一种直接使用Rserve的方法(请参阅下面的答案)。 –