2013-03-09 59 views
3

我不確定我是否正確執行此操作。如何通過R客戶端連接到Rserve

在標籤1中,我打開R,然後在R會話中執行Rserve(端口= 6311)。我加載變量「name = Hello World」

在標籤2中,我打開R,然後嘗試連接到Rserve。我通過這樣做:

C = RSconnect(主機= 「localhost」,則端口6311)

然後我嘗試打印的Hello World:

RSeval(C,名字)

但它不起作用。我得到:

錯誤RSeval(C,名字):對象的名字'未找到

我在做什麼錯在這裏?

回答

4

我從Rserve的作者那裏得到了一些信息。更改後,Rserve中更改的變量將可用於RSclient連接。特別是我得到了這些代碼工作。

$ ~/bin/R CMD Rserve --RS-enable-control 
$ ~/bin/R 
library(RSclient); 
c=RS.connect(); 
RS.server.eval(c,"xx<-1"); 

## [1] TRUE 

RS.close(c) 

## NULL 

c1=RS.connect(); 
RS.eval(c1,quote(yy<-xx)); 

## [1] 1 

quit() 
+0

但在服務器上,我已經宣佈,名字= 「世界你好」。我想從客戶端訪問該變量。 – user1103294 2013-03-09 22:33:23

+0

對於連接到服務器的每個客戶端,該客戶端都有唯一的上下文。每個客戶端的上下文不與服務器的上下文重疊。我也嘗試在服務器端定義一個變量,並從客戶端訪問它。但是,這似乎並不奏效。我正在使用Rserve 0.7.1。 – Indicator 2013-03-09 23:23:19

+0

我認爲服務器可以將它的上下文分享給客戶端。這實際上是我正在嘗試解決的這個[問題](http://stackoverflow.com/questions/9936116/r-script-and-library-preloading/9936146#9936146)的建議解決方案。我們都可能錯過了一步。 – user1103294 2013-03-09 23:33:13

相關問題