在构建 JMP 插件时,我经常使用 JMP 到 R 接口, JMP 到 R 自定义插件生成器。 因此,如果您想了解如何开始使用 JSL 连接 JMP 到 R,那么您来对地方了!
我主张通过示例学习而不是记住 API,所以让我们从通过 R 往返数据的示例开始,然后回到联合管理计划。 您需要将数据从 JMP 发送到 R,在 R 中执行操作,然后将结果返回到 JMP。 因此,您的脚本的主干应该如下所示:
//initializes the R interfaces
R Init();
//send data to R
R Send(/*name of JMP object you want to send to R, i.e. data table, list, matrix, string, or numeric*/);
//or
R Send File(/*path to the file you want to send here, as a string*/);
//perform calculations in R
R Submit(/*code you want to execute in R here, as a string*/);
//or
R Submit File(/*path to the file that contains the R code you want to execute*/);
//return data from R
varName = R Get(/*name of object you want to return from R*/);
//terminates the R interfaces
R Term();
或者,也许您想在一行中完成所有操作,这相当于R 发送()对于你的变量名一一来说, R 提交()对于您的代码,以及R 获取()对于 R 变量一一:
R Execute(/*list of R input var names*/, /*list of R output var names*/, "\[your R code to submit]\");
我见过的一个常见问题是,“两者之间有什么区别?” R 发送()和R 提交() ?
R 发送()将数据结构发送到 R — 五个选项是数据表、列表、矩阵、字符串和数字。
R 提交()相比之下,将 R 代码作为字符串提交给您要执行的 R。 如果代码不包含引号,则可以将代码写为字符串,或者使用以下命令对其进行转义“\[ 代码 ]\” 。
一旦你有了这个主干,一个问题仍然存在:如何以你可以使用的格式获得 R 输出?
答案是:视情况而定。
如果要打开从 R 检索的数据表,可以使用以下命令:
R Get(/*name of R variable that contains data table*/) << new data view;
这将打开 JMP 中的数据表。
如果要在现有 JMP 数据表中追加列,可以使用:
varName = R Get(/*name of R variable that contains list with values*/);
dt << New Column(/*name of new column*/, /*column data type, e.g. Character, Numeric*/, Values(varName));
如果你想展示最多最近生成 R 图,您可以使用:
R Get Graphics(/*either png or jpg*/);
要在 JMP 窗口中查看此图像,请使用:
New Window("My Plot", R Get Graphics(/*either png or jpg*/));
还有其他输出选项,本节介绍了其中一些掌握 JMP 网络广播。
需要注意的一个非常重要的事项:在执行诸如R 获取() ,R 变量名称必须是 JSL 表达式的名称(即不是字符串)。 R 获取(“var”) ,这是不正确的,不等于R 获取(变量) , 哪个是对的。
最后,我在使用 JMP to R 接口时遇到的一个问题是,我依赖用户输入来确定这些函数的参数。 在这种情况下,我会使用评估(解析())运行这些 JMP 到 R 接口命令。 例如:
Eval(Parse(varName || " = R Get(" || userInputValue || ");"));
或者
Eval(Parse("dt << New Column(userInputForColumnName, " || userInputForColumnType || ", Values(" || stringNameOfListVariable || "));"));
除这些之外的其他 JMP 到 R 功能( R 连接() , R 控制()等)可以在脚本索引中找到。
祝你好运! 我很想听听您的想法联合管理计划到下面评论中的 R 接口。