使用 Rserve 和 Roger 从 golang 执行 R 脚本
executing R scripts from golang using Rserve and Roger
我如何使用 Roger 通过 golang 的 Rserve 从 R 脚本执行函数...
如果一个函数不需要参数或只需要一个参数,它就可以正常工作..
当函数有两个参数时,问题就来了。
Golang
//using backticks works fine too
param := "'hello'"
param2 := "'World'"
jsonx, err := rClient.Eval("parse(as.character(" + param + "," + param2 "))")
if err != nil {
s := fmt.Sprintf("%s %s", "Error occured : ", err.Error())
log.Println(s)
return
}
R 脚本
//simple
parse <- function(xx, nx) {
print(xx)
print(nx)
return(nx)
}
第一个参数被分配了 hello 但第二个参数给出了一个错误,即没有从 Rserve 端设置默认值..
我如何从 golang
调用需要两个或多个参数的函数
变化:
jsonx, err := rClient.Eval("parse(as.character(" + param + "," + param2 "))")
收件人:
jsonx, err := rClient.Eval("parse(as.character(" + param + "),as.character(" + param2 + "))")
对于像我这样进入 R 并与 Go 集成的人来说,这可能有点令人生畏。所以我希望这对某人有所帮助。
我如何使用 Roger 通过 golang 的 Rserve 从 R 脚本执行函数...
如果一个函数不需要参数或只需要一个参数,它就可以正常工作.. 当函数有两个参数时,问题就来了。
Golang
//using backticks works fine too
param := "'hello'"
param2 := "'World'"
jsonx, err := rClient.Eval("parse(as.character(" + param + "," + param2 "))")
if err != nil {
s := fmt.Sprintf("%s %s", "Error occured : ", err.Error())
log.Println(s)
return
}
R 脚本
//simple
parse <- function(xx, nx) {
print(xx)
print(nx)
return(nx)
}
第一个参数被分配了 hello 但第二个参数给出了一个错误,即没有从 Rserve 端设置默认值.. 我如何从 golang
调用需要两个或多个参数的函数变化:
jsonx, err := rClient.Eval("parse(as.character(" + param + "," + param2 "))")
收件人:
jsonx, err := rClient.Eval("parse(as.character(" + param + "),as.character(" + param2 + "))")
对于像我这样进入 R 并与 Go 集成的人来说,这可能有点令人生畏。所以我希望这对某人有所帮助。