我需要在R服务器上远程执行(评估)脚本,捕获来自控制台的所有输出和消息,并将它们发送回我的Web客户端。到目前为止,我只尝试了Plumber软件包,得到的最好结果是执行脚本最后一行的输出。 下面是我的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)
对于接收器,当我尝试在关闭之前复制textConnection时,我得到的是空result
变量或“无法为resultVariable更改锁定绑定的值”。我也尝试过“ evals”,但不适用于功能。
如何在R中制作它?有可能在水管工中做到吗?如果有人知道更好的方法,我将不胜感激。 预先感谢您的帮助