gpt4 book ai didi

r - 使用 r 脚本将 JSON 从 NodeJS 传递到 R

转载 作者:太空宇宙 更新时间:2023-11-04 03:20:45 25 4
gpt4 key购买 nike

我正在尝试在 NodeJS 应用程序和 R 脚本之间建立简单的连接。到目前为止,我已经使用 r-script (在 npm 上找到)成功设置了基本连接和脚本的运行。

但是,我无法将简单的 json 传递给 R,以便可以使用 jsonlite 将其转换为数据帧。

NodeJS 代码:

var R = require("r-script");

var out = R("script.R")
.data({"Name" : "Mario", "Age" : 32, "Occupation" : "Plumber"}, {"Name" : "Peach", "Age" : 21, "Occupation" : "Princess"}, {}, {"Name" : "Bowser", "Occupation" : "Koopa"})
.callSync();

console.log(out);

脚本.R:

library("jsonlite")
mydf <- fromJSON(input[[1]])

这给出了输出:

 'Argument 'txt' must be a JSON string, URL or file.'

我尝试删除向量的索引(并将完整列表提供给 fromJSON),但它也不起作用。

有人使用此 npm 模块成功将 JSON 传递到 R 脚本吗?

提前致谢!

编辑:另外,如果将 JSON 放在“'”之间,它会在空格中给出“尾随错误”,如果它们被删除,则会在 { 字符上出现。

最佳答案

我不知道 R 是如何工作的,但是该错误可能表明您尝试传递的是 javascript 对象,而不是 JSON。 Javascript 对象看起来与 JSON 相似,但并不完全相同(请参阅此处的讨论 Javascript object Vs JSON )

您可以尝试的一件事是通过在对象上调用 JSON.stringify 函数来向数据函数传递一个 JSON 字符串。像这样的事情:

var R = require("r-script");

var out = R("script.R")
.data(JSON.stringify({"Name" : "Mario", "Age" : 32, "Occupation" : "Plumber"}), JSON.stringify( {"Name" : "Peach", "Age" : 21, "Occupation" : "Princess"}),JSON.stringify ({}), JSON.stringify({"Name" : "Bowser", "Occupation" : "Koopa"}))
.callSync();

console.log(out);

虽然可能性不大,但它显示了您可以调试的大致方向

关于r - 使用 r 脚本将 JSON 从 NodeJS 传递到 R,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50700828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com