Мне нужно удаленно выполнить (оценить) скрипт на R-сервере, перехватить все выходные данные и сообщения с консоли и отправить их обратно моему веб-клиенту.До сих пор я пробовал только с пакетом Plumber, и лучший результат, который я получил, был вывод для выполнения последней строки в скрипте.Ниже приведен мой код для конечной точки сантехника:
#' @post /executescript
function(txtScript,data){
resultVariable<- capture.output(eval(parse(text=txtScript)),file = NULL, append = TRUE,
type = c("output", "message"), split = TRUE)
}
Этот код недостаточно хорош для меня, поскольку я хотел бы захватить весь вывод всех вызовов функций в сценарии (не только вывод последней строки),Я также пытался использовать сток и evals (пакет 'pandor'), но результаты получаются лучше.
tc <- textConnection("resultVariable","w")
sink(tc, append = FALSE, type = c("output", "message"))
eval(parse(text=txtScript))
sink(NULL, type = c("output", "message"))
close(tc)
result<-print(resultVariable)
В случае получения я получил либо пустую переменную result
, либо 'не могу изменить значение заблокированной привязки для resultVariableкогда я пытался скопировать textConnection перед закрытием.Я также попробовал 'evals', но он не работал с функциями.
Как я могу сделать это в R?Можно ли сделать это в Сантехнике?Если кто-нибудь знает лучший способ сделать это, я буду признателен за любую помощь.Заранее благодарен за любую помощь