2013-03-09 101 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

相关问题