как подключиться к Rserve с R-клиентом

Я не уверен, правильно ли я это делаю.

На вкладке 1 я открываю R, затем запускаю Rserve (порт = 6311) внутри сеанса R. Я загружаю переменную "name = Hello World"

Во вкладке 2 я открываю R, затем пытаюсь подключиться к Rserve. Я делаю это:

c = RSconnect (хост = "localhost", порт 6311)

Затем я пытаюсь напечатать hello world:

RSeval(c, имя)

Но это не работает. Я получил:

Ошибка в RSeval(c, name): объект "имя" не найден

Что я здесь делаю неправильно?


person user1103294    schedule 09.03.2013    source источник


Ответы (1)


Я получил некоторую информацию от автора 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()
person Indicator    schedule 09.03.2013
comment
но на сервере я уже объявил, что имя = привет, мир. Я хочу получить доступ к этой переменной от клиента. - person user1103294; 10.03.2013
comment
Для каждого клиента, подключенного к серверу, существует уникальный контекст для этого клиента. Контекст каждого клиента не пересекается с контекстом сервера. Я также попытался определить переменную на стороне сервера и получить к ней доступ с клиента. Однако, похоже, это далеко не работает. Я использую Rserve 0.7.1. - person Indicator; 10.03.2013
comment
Я думаю, что сервер может поделиться своим контекстом с клиентом. На самом деле это предлагаемое решение для той же проблемы, которую я пытаюсь решить. решать. Мы оба просто, вероятно, пропустили шаг. - person user1103294; 10.03.2013
comment
Полагаю, что так. Я уже отправил электронное письмо автору Rserve. Я дам вам знать, если я получу дополнительную информацию. - person Indicator; 10.03.2013
comment
оно работает! спасибо за помощь в отладке. и я никогда не знал, что вы можете просто написать автору.... - person user1103294; 10.03.2013
comment
Спасибо, что подняли этот вопрос, который мотивирует меня копать проблему глубже. Раньше я использовал несовершенный обходной путь. - person Indicator; 10.03.2013