1

我无法在调试模式下启动 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-script 函数打印 R 中变量的输出。但是 R 控制台中没有出现任何内容,但是当我在 R 控制台中运行 print 时,它工作正常。

4

3 回答 3

0

根据这篇文章*,应该使用以下命令运行 RServe 以启用调试:

R CMD Rserve_d

另一种方法是在调用 R 脚本的计算字段中使用“write.csv”命令,如Tableau 的此常见问题解答文档所建议的那样

于 2015-02-28T10:07:09.330 回答
0

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

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

如果您不想从命令行运行,您可以尝试从 RStudio 启动 Rserve,方法是在 Tableau 计算字段中键入run.Rserve()then usingprint()语句来处理您想要打印的内容。

于 2016-05-13T06:02:35.780 回答
0

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

R CMD Rserve.dbg

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

于 2017-02-10T17:41:52.353 回答