Actualización 27 de junio de 2018: JMPtoRAddinBuilder.jmpaddin ahora contiene archivos fuente JSL sin cifrar.
Actualización de la versión 2
¡Me complace anunciar que JMP to R Add-In Builder ahora admite la salida de todos los componentes de salida (tabla, gráfico, etc.) como un solo informe! Para habilitar esta función, instale el "JMPtoRAddinBuilderWithReport" adjunto. Al definir sus componentes de salida, marque la casilla "Devolver todos los resultados como informe".
Para ver un ejemplo del formato de salida actualizado, desplácese a la sección correspondiente en la publicación a continuación. También se adjunta la función SVM con la salida de informes habilitada.
¿Qué es el generador de complementos de JMP a R?
Si bien JMP es un software estadístico muy potente, es posible que los usuarios de JMP deseen ampliar JMP más allá de sus capacidades incluidas accediendo a algunas funcionalidades de R.
Este verano, a la luz de la necesidad de hacer que las funciones de R sean más accesibles para los usuarios de JMP sin salir de la plataforma JMP, creé esta interfaz de usuario JMP de configuración guiada que permite a los usuarios definir y usar complementos JMP personalizados que ejecutan funciones de R. Este complemento permite a los usuarios finales analizar sus datos en JMP utilizando funciones R sin escribir código JSL o R.
Este programa utiliza la conexión JMP a R y también se puede adaptar para crear complementos personalizados para funciones en otros lenguajes, como Python y el propio JSL.
Vea una demostración en vídeo del generador de complementos JMP to R aquí o por debajo:
Requisitos
- R debe estar instalado en su computadora. Instalar R desde https://www.r-project.org/
- El complemento sólo se ejecuta en el sistema operativo Windows.
- Si corresponde, instale los paquetes apropiados en R que usará en su código R.
Notas de uso
- Si utiliza selecciones de columnas o listas de columnas en su complemento, asegúrese de abrir su tabla de datos antes de ejecutar la interfaz de usuario de configuración.
- Cada función creada solo tendrá una lista de columnas como máximo.
- Todas las columnas seleccionadas se agruparán en una columna; ingrese la misma columna para todas las selecciones de columnas.
- Cada uno de los nombres de los botones para las selecciones de columnas debe ser único.
- Las selecciones de columnas y las listas de columnas se colocarán en la parte superior de sus respectivas columnas.
- En su código R, haga referencia a su tabla de datos como "dt".
- Si está agregando una columna a una tabla y le pide al usuario que seleccione el tipo de columna, en su código R, consulte la cadena que contiene la elección del usuario como "colType".
- Los valores de las casillas de verificación se devuelven como '0' (sin marcar) o '1' (marcado).
- Pegue el código R como lo haría normalmente en la consola R, excepto por la siguiente diferencia.
Cuando haga referencia al nombre de una variable como una cadena como parámetro de una función, use la función eval(parse()) en R. Por ejemplo:
eval(parse(text=paste("x <- subset(dt, select=-", colnames(factor)[1], ")")))Esto evalúa la expresión y utiliza la cadena almacenada en colnames(factor)[1] en la operación de la función.
Cómo funciona: creación de una función de máquina de vectores de soporte (SVM) como ejemplo
PASO 0
Instale y abra JMP to R Add-In Builder.
NOTA: Si utiliza selecciones de columnas o listas de columnas en su complemento, asegúrese de abrir su tabla de datos antes de ejecutar la interfaz de usuario de configuración Y antes de ejecutar el complemento que cree.
Step 0: Install and Open Add-InStep 0: Install and Open Add-In Paso 0: instalar y abrir el complemento
PASO 1
Step 1: Enter Number of Components and ColumnsStep 1: Enter Number of Components and Columns Paso 1: ingrese el número de componentes y columnas La primera pantalla solicita el número de componentes* y columnas. # en su complemento.
*Los cinco tipos de componentes admitidos son: casilla de verificación, lista de columnas, selección de columnas, menú desplegable y valor numérico. Cada selección de columna viene con su propio botón de asignación, así que cuente cada selección de columna y el botón correspondiente como un componente.
# El número de columnas se refiere a las columnas de visualización en las que aparecen los componentes. Por ejemplo, hay dos mostrar columnas en la interfaz de usuario para este ejemplo (ver más abajo).
NOTA: La columna "Acción" está agrupada con la columna de selección de columna, lo que significa que esos dos objetos agrupados cuentan como una columna .
PASO 2
A continuación, para cada uno de sus componentes, identifique el tipo.
NOTA: Ingrese los componentes en el orden en que desea que aparezcan en su complemento, por columnas. Esto significa que todos los componentes de cada columna deben estar en orden secuencial en los menús desplegables que especificó, pero no es necesario que ingrese valores estrictamente columna por columna.
Por ejemplo, puede ingresar los tipos para el componente 1, columna 1; luego componente 1, columna 2; luego el componente 2, columna 1; luego el componente 2, columna 2 en lugar de columna por columna si así lo desea.
Step 2: Enter Component TypesStep 2: Enter Component Types Paso 2: Ingrese los tipos de componentes
PASO 3
Para cada componente, seleccione la columna en la que debería aparecer.
En esta pantalla, defina también los parámetros para cada componente de la siguiente manera:
- Casilla de verificación: ingrese el nombre (etiqueta) del componente.
- Lista de columnas: aparte de seleccionar la columna, no es necesario realizar ninguna otra acción.
- Seleccionar columna: marque todas las propiedades que se aplican a su cuadro de selección.
- Menú desplegable: ingrese la etiqueta del menú desplegable y las opciones del menú. NO incluya espacios después de las comas (es decir, enumere las cosas como a,b,c,d), pero los nombres y las opciones en sí pueden contener espacios. El primer nombre que escriba en la lista se tomará como nombre para el menú desplegable y el resto aparecerá como opciones en el orden en que las escriba.
- Valor numérico: ingrese el nombre (etiqueta) del componente.
Step 3: Enter Component ParametersStep 3: Enter Component ParametersPaso 3: Ingrese los parámetros de los componentes
ETAPA 4
Si su complemento usa selecciones de columnas, ingrese los nombres de cada uno de los botones para las selecciones de columnas correspondientes en el orden en que deben aparecer. De lo contrario, haga clic en "Siguiente".
Step 4: Enter Column Select Names, if ApplicableStep 4: Enter Column Select Names, if ApplicablePaso 4: Ingrese los nombres de selección de columnas, si corresponde
PASO 5
Esta pantalla muestra una vista previa de la interfaz de usuario del complemento que ha creado.
Step 5: Add-In User Interface PreviewStep 5: Add-In User Interface PreviewPaso 5: Vista previa de la interfaz de usuario del complemento
PASO 6
En esta página, asigne un nombre a su complemento y proporciónele una descripción (que se mostrará debajo del nombre del complemento).
Step 6: Name and Describe Add-InStep 6: Name and Describe Add-In Paso 6: nombrar y describir el complemento
PASO 7
En esta pantalla, defina los nombres de las variables de entrada y salida que se utilizarán en su código R. Deben ser solo de una palabra (sin espacios).
Para las variables de salida, NO incluya un espacio después de las comas (es decir, enumere las variables como a,b,c).
Step 7: Define Input and Output VariablesStep 7: Define Input and Output Variables Paso 7: definir variables de entrada y salida
PASO 8
En esta pantalla, ingrese el código R que ejecutará su función. El código R debe estar en sintaxis R (es decir, podría ejecutarse directamente en una consola R).
El código debe hacer referencia a los nombres de las variables que declaró en la pantalla anterior.
Introduzca también el número de visualizaciones de salida para la función. Los cuatro tipos de pantallas de salida admitidas actualmente son:
- Agregar columna en la tabla existente
- Gráfico R más reciente
- Mesa abierta
- Ventana de resultados con texto o números
Step 8: Enter R Code and Number of Output DisplaysStep 8: Enter R Code and Number of Output DisplaysPaso 8: Ingrese el código R y el número de pantallas de salida
Código R para este ejemplo:
library(e1071)
library(gridExtra)
theText <- paste("x <- subset(dt, select=-", colnames(factor)[1], ")")
eval(parse(text=theText))
y <- factor
svm_model <- svm(x, y, type=svmType)
modelText <- paste("second.svm <- svm(", colnames(factor)[1], " ~ ., data = dt)")
eval(parse(text=modelText))
summary(svm_model)
summary(second.svm)
pred <- predict(svm_model, x)
pred <- as.vector(pred)
if(is.list(y)) {y <- unlist(y)}
predTable <- table(pred,y)
predTable <- as.data.frame(predTable)
eval(parse(text=paste(colnames(y_var)[1], "<- as.vector(as.matrix(y_var))")))
eval(parse(text=paste(colnames(x_var)[1], "<- as.vector(as.matrix(x_var))")))
max1 <- eval(parse(text=paste("max(", colnames(y_var)[1], ")")))
max2 <- eval(parse(text=paste("max(", colnames(x_var)[1], ")")))
gridSize <- eval(parse(text=paste("max(c(", max1, ",", max2, "))")))
eval(parse(text=paste("plot(second.svm, dt, ", colnames(y_var)[1], " ~ ", colnames(x_var)[1], ", fill=TRUE, grid=gridSize)")))
PASO 9
Para cada una de las pantallas de salida que haya seleccionado, especifique el tipo.
Step 9: Select Output Display TypesStep 9: Select Output Display Types Paso 9: seleccione los tipos de visualización de salida
PASO 10
Proporcione los parámetros para cada pantalla de salida que seleccionó de la siguiente manera:
- Para Agregar columna, ingrese el nombre de la columna que se agregará a la tabla abierta actualmente, el tipo de datos que contiene la columna y la variable de salida especificada anteriormente que contendrá la lista de valores que completarán la columna.
- Para Tabla, ingrese la variable de salida especificada anteriormente que contendrá la tabla.
- Para R Plot, ingrese el formato de los gráficos que desea recuperar de R (png o jpg).
- Para Ventana, ingrese el texto de los resultados como debería aparecer en la ventana de resultados. Si desea que se muestren los valores de las variables de entrada/salida, rodee los nombres de las variables con el símbolo de intercalación (^). También ingrese el nombre de la ventana que desea que se muestre.
Step 10: Provide Output Display ParametersStep 10: Provide Output Display ParametersPaso 10: Proporcionar parámetros de visualización de salida ¡Ahora puede encontrar el archivo complementario en el directorio que eligió!

A instalar el complemento, haga doble clic en el complemento y JMP debería preguntarle si desea instalarlo. Haga clic en "Instalar". Ahora debería aparecer en el menú Complementos de JMP.
A correr el complemento, abra la tabla de datos en la que desea realizar la operación (si corresponde) para que sea la tabla actual. Haga clic en su complemento como se muestra arriba y se abrirá el cuadro de diálogo del complemento.

Para este ejemplo, los tres salidas son una columna de predicción, una matriz de confusión y un gráfico SVM. Los resultados de las entradas que se muestran arriba son los siguientes, siendo la primera vista el formato de salida del informe recién agregado en la versión 2:
Output view from add-in version 2Output view from add-in version 2 Vista de resultados de la versión 2 del complemento
Output view from add-in version 1Output view from add-in version 1Vista de resultados de la versión 1 del complemento
Complemento de edición
Para editar su complemento, abra el directorio en el que guardó su archivo .jmpaddin. Cambie la extensión a .zip:
Abra el archivo .txt que tiene el nombre de su complemento:

Este es su archivo de configuración. Si desea realizar algún cambio en su complemento, como código R o nombres de variables, puede editar directamente sus entradas en este documento, guardar el archivo .txt y el archivo .zip, cambiar la extensión nuevamente a .jmpaddin, y reinstale su complemento. Los cambios se reflejarán si cambió los valores correctamente.
Consulte la documentación adjunta para ver un segundo ejemplo (Aproximación agregada por partes de series temporales, código R adaptado de aquí ) y otras notas. Adjuntos también se encuentran los dos ejemplos (SVM, PAA) que creé con este complemento.
¿Qué complementos de R ha creado con este complemento? ¿Qué mejoras te gustaría ver? ¡Déjame saber abajo en los comentarios!