Я стараюсь использовать Rserve из Tableau. Я в состоянии выполнить следующий код:Как поместить функции в рабочее пространство Rserve?
SCRIPT_REAL(".arg1*.arg2", MAX([Price]), [TestParam])
В принципе, я пишу код R в Tableau (".arg1*.arg2"
в моем случае) и отправить его в Rserve. Rserve, в свою очередь, берет код, выполняет его и отправляет результат обратно в Tableau.
Теперь я пытаюсь сделать то же самое, но определяя функцию внутри среды R и получая ее от Tableau через Rserve. Итак, я выполняю следующее в R:
> myfunc <- function(x, y) {x*y}
> library(Rserve)
> Rserve()
Это означает, что я определить функцию в R среде, а затем начать Rserve в той же среде, с надеждой, что Rserve будет увидеть функцию, которую я определил ранее.
Тогда в Tableau я определяю новый столбец, используя этот код:
SCRIPT_REAL("myfunc(.arg1,.arg2)", MAX([Price]), [TestParam])
Как вы можете видеть, я пытаюсь вызвать функцию (myfunc
), что я определил в R.
Как result Я получаю сообщение об ошибке, которое сообщает мне, что myfunc
не найден.
Изучив несколько веб-страниц, я обнаружил, что это следует ожидать, поскольку функции, определенные в рабочем пространстве R, не находятся в рабочем пространстве Rserve. Итак, мой вопрос: Можно ли определить функцию в R, а затем сделать ее видимой для Rserver, чтобы Rserve мог обслуживать эти функции?
Я не гуру Rserve, но я предполагаю, что вам нужно будет превратить его в пакет и установить его в системной библиотеке (не под '$ HOME'). – r2evans