Trabajé mucho con la interfaz de JMP a R al crear mi complemento JMP, el JMP to R Custom Add-In Builder . Por lo tanto, si desea aprender cómo comenzar con la conexión JMP a R mediante JSL, ¡ha venido al lugar correcto!
Soy un defensor de aprender a través de ejemplos en lugar de memorizar las API, así que comencemos con el ejemplo de los datos de ida y vuelta a través de R y volvamos a JMP . Deberá enviar datos de JMP a R, realizar operaciones en R y devolver los resultados a JMP. La columna vertebral de su script debería verse así:
//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();
O tal vez le gustaría hacerlo todo en una línea, lo que equivale a R Enviar () para sus nombres de variables uno por uno, R Enviar () para su código, y R Obtener () para las variables R una por una:
R Execute(/*list of R input var names*/, /*list of R output var names*/, "\[your R code to submit]\");
Una pregunta común que he visto es, ¿cuál es la diferencia entre R Enviar () y R Enviar () ? '
R Enviar () envía una estructura de datos a R: las cinco opciones son tabla de datos, lista, matriz, cadena y numérico.
R Enviar () En contraste, envía el código R como una cadena a R que desea ejecutar. Puede escribir el código como una cadena si no contiene comillas o escapar de él usando "\ [Código] \" .
Una vez que tenga esta red troncal, queda una pregunta: ¿Cómo obtiene la salida R en un formato que pueda usar?
La respuesta: depende.
Si desea abrir una tabla de datos que recuperó de R, puede usar el siguiente comando:
R Get(/*name of R variable that contains data table*/) << new data view;
Esto abre la tabla de datos en JMP.
Si desea agregar una columna en una tabla de datos JMP existente, puede usar:
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));
Si quieres mostrar más recientemente producido R parcela, puede utilizar:
R Get Graphics(/*either png or jpg*/);
Para ver esta imagen en una ventana JMP, use:
New Window("My Plot", R Get Graphics(/*either png or jpg*/));
También hay otras opciones de salida, algunas de las cuales están cubiertas en este Mastering JMP Webcast .
Una nota muy importante para hacer: cuando se realizan operaciones como R Obtener () , el nombre de la variable R debe ser el nombre como una expresión JSL (es decir, no una cadena). R Obtener ("var") , lo cual es incorrecto, no es equivalente a R Get (var) , cual es correcta.
Finalmente, un problema que encontré al usar la interfaz JMP to R fue que confié en la entrada del usuario para determinar los parámetros de estas funciones. En este caso, yo usaría Eval (Parse ()) para ejecutar estos comandos de interfaz JMP a R. Por ejemplo:
Eval(Parse(varName || " = R Get(" || userInputValue || ");"));
o
Eval(Parse("dt << New Column(userInputForColumnName, " || userInputForColumnType || ", Values(" || stringNameOfListVariable || "));"));
Otras funciones de JMP a R más allá de estas ( R Connect () , Control R () , etc.) se puede encontrar en el Índice de Scripting.
¡La mejor de las suertes! Me encantaría escuchar tus pensamientos sobre el JMP a la interfaz R a continuación en los comentarios.