使用 Rserve 和 Roger 从 golang 执行 R 脚本



如何使用 Roger 通过 Rserve 从 golang 执行 R 脚本中的函数......

如果一个函数不需要参数或只需要一个参数,它就可以正常工作。当函数接受两个参数时,问题就来了。

戈朗

//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 集成的人来说,这可能有点令人生畏。所以我希望这对某人有所帮助。

相关内容

  • 没有找到相关文章

最新更新