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的方法(請參閱下面的答案)。 –