【发布时间】:2016-08-10 13:08:47
【问题描述】:
我尝试使用 Tableau 中的 Rserve。我能够执行以下代码:
SCRIPT_REAL(".arg1*.arg2", MAX([Price]), [TestParam])
基本上,我在 Tableau 中编写 R 代码(在我的例子中为 ".arg1*.arg2")并将其发送到 Rserve。反过来,Rserve 获取代码、执行代码并将结果发送回 Tableau。
现在我正在尝试做同样的事情,但通过在 R 环境中定义一个函数并通过 Rserve 从 Tableau 访问它。因此,我在 R 中执行以下操作:
> myfunc <- function(x, y) {x*y}
> library(Rserve)
> Rserve()
也就是说我在R环境中定义了一个函数,然后在同一个环境中启动Rserve,希望Rserve能看到我之前定义的函数。
然后在 Tableau 中,我使用以下代码定义了一个新列:
SCRIPT_REAL("myfunc(.arg1,.arg2)", MAX([Price]), [TestParam])
如您所见,我尝试调用我在 R 中定义的函数 (myfunc)。
结果我收到一条错误消息,告诉我找不到myfunc。
通过浏览网络,我发现这是可以预期的,因为在 R 工作空间中定义的函数不在 Rserve 的工作空间中。所以,我的问题是:是否可以在 R 中定义一个函数,然后使其对 Rserver 可见,以便 Rserve 可以为这些函数提供服务?
【问题讨论】:
-
我不是 Rserve 专家,但我猜你需要将它变成一个包并安装在系统库中(不在
$HOME下)。跨度>
标签: r tableau-api workspace rserve