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

时间:2017-01-25 15:46:50

标签: r go rserve

如何使用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

的两个或更多参数的函数

1 个答案:

答案 0 :(得分:0)

更改:

jsonx, err := rClient.Eval("parse(as.character(" + param + "," + param2 "))")

收件人:

jsonx, err := rClient.Eval("parse(as.character(" + param + "),as.character(" + param2 + "))")

对于像我这样的人来说,进入R并与Go集成,可能会有些令人生畏。所以我希望这对某人有帮助。