在调试模式下启动Rserve并将变量从Tableau打印到R.

时间:2015-02-27 09:11:08

标签: r tableau rserve

我无法在调试模式下启动Rserve。 我在R:

中写了这些命令
library(Rserve)
Rserve(debug=T, args="RS-enable-control", quote=T, port = 6311)
library(RSclient)
c=RSconnect(host = "localhost", port = 6311)
RSeval(c, "xx<-12")
RSeval(c, "2+6")
RSeval(c, "xx")
RSclose(c)
install.packages("fpc")

我将Rserve_d.exe放在R.dll文件所在的同一目录中。但是当我启动它并使用Rserve连接启动Tableau时,我无法在调试控制台中看到任何内容,只有这几行。

Rserve 1.7-3 () (C)Copyright 2002-2013 Simon Urbanek
$Id$
Loading config file Rserv.cfg
Failed to find config file Rserv.cfg
Rserve: Ok, ready to answer queries.
-create_server(port = 6311, socket = <NULL>, mode = 0, flags = 0x4000)
INFO: adding server 000000000030AEE0 (total 1 servers)

我在R中使用Rserve(TRUE)命令尝试了另一种解决方案,但我无法在Rstudio控制台中看到R和Tableau之间的事务。

然后我想通过print(.arg1)从R脚本函数打印R中变量的输出。但R控制台中没有任何内容 但是当我在R控制台中运行打印时,它可以正常工作。

3 个答案:

答案 0 :(得分:0)

根据此article *,应使用以下命令运行RServe以启用调试:

R CMD Rserve_d

另一种方法是在调用R脚本的计算字段中使用'write.csv'命令,如this FAQ document from Tableau

所示

答案 1 :(得分:0)

从命令行启动Rserve_d.exe。很可能您有多个Rserve实例正在运行,Tableau正在向在命令行中运行的非Rserve_d的请求发送请求。

您是否尝试杀死所有Rserve进程,然后从命令行启动Rserve_d?

如果您不想从命令行运行,可以尝试在RStudio中启动Rserve,方法是键入run.Rserve(),然后在Tableau计算字段中使用print()语句查找要打印的内容

答案 2 :(得分:0)

在R bin目录中,有两个可执行文件Rserve用于正常执行,Rserve.dbg用于调试执行。使用

R CMD Rserve.dbg

我的操作系统是CENTOS7,我正在使用anaconda的R安装。如果您的RServe调试可执行文件具有不同的名称,您应该使用它。