Ya publiqué algunos de los complementos que escribí para JMP. Los códigos y complementos (algunos están cifrados) se pueden encontrar en esta página de GitHub jthi-jmp-herramientas (github.com) y una descripción general se puede encontrar en jthi-jmp-tools / JMP-Tools (github.com) repositorio. Si tiene sugerencias sobre estos complementos, puede:
- Comentar a esta publicación
- Abra un problema en el repositorio de GitHub correcto relacionado con ese complemento o con uno genérico
- Comente en la página del complemento de la comunidad JMP si he lanzado el complemento aquí
- Enviar mensaje privado en la comunidad JMP
El propósito de desarrollarlos es proporcionar nuevas herramientas, mejorar las herramientas que JMP ya tiene y, sobre todo, mejorar mis habilidades de programación mientras escribo código algo interesante. Todos los complementos se pueden encontrar en jthi-jmp-tools/JMP-Tools/releases (github.com) y deberías poder descargarlos e instalarlos desde allí. Algunos también se pueden encontrar en JMP Community. Los complementos incluyen algunas funciones independientes que puede usar en sus propios scripts al incluir scripts correctos/copiarlos en su código, por lo que si está interesado en eso, le sugiero que eche un vistazo a los códigos fuente.
Los complementos están estructurados con una idea básica que tuve hace mucho tiempo sobre cómo estructurarlos, por lo que prácticamente tienen la misma estructura de directorios y algunos archivos comunes. Por ejemplo, algunas configuraciones que se pueden guardar se han guardado en el archivo settings.json. Los complementos se crean mediante el uso Administrador de complementos ya que hace que la administración de múltiples complementos sea mucho más fácil que las herramientas nativas que proporciona JMP.
La mayoría de los complementos se agregarán al menú Complementos en JMP-Tools:

También hay un complemento para la barra de herramientas. Esto se puede encontrar en la página de versiones de "repositorios principales". Principalmente útil si ha instalado (todos/la mayoría) los complementos que se describen aquí.

A continuación se muestra una descripción general rápida de los complementos que he creado. Tenga en cuenta que hay algunos que están trabajando mucho en progreso. Los scripts que se pueden encontrar en la comunidad deben tener este enlace de "libro" en el título.
.
La idea es proporcionar a los usuarios estadísticas resumidas rápidas y acciones rápidas que pueden realizar en las columnas. Esto se puede utilizar como la primera herramienta que ejecuta cuando obtiene un nuevo conjunto de datos para obtener una descripción general de los datos con los que está trabajando (inspirado parcialmente en perfilado de pandas (github.com) ).

De vez en cuando, verá datos que se han codificado incorrectamente y tienen un tipo de datos incorrecto. En JMP, cuando cambia el tipo de datos de Carácter a Numérico, es bastante fácil terminar perdiendo algunos datos debido a cómo funciona la conversión. El propósito de esta herramienta es convertir columnas de caracteres seleccionadas (que se pueden convertir de forma segura) en columnas numéricas. La herramienta obtiene los valores en las columnas y luego verifica si se pueden convertir a numéricos. Y si se pueden convertir todos (o suficientes) cambiará el tipo de datos a numérico. Le permite seleccionar las columnas que desea convertir, permite usar un umbral para la conversión y la frecuencia de muestreo.

Esta herramienta creará una columna de Ordenamiento en la tabla de datos con los números de fila actuales. Esto es útil cuando inicia el análisis y desea ordenar los datos, pero aún tiene la posibilidad de retroceder al orden original. La columna se creará al inicio de la tabla de datos y, si se crean varias columnas de orden, se agregará la indexación.

También creé un elemento de la lista de deseos con la esperanza de poder encontrar algo un poco similar directamente desde JMP (para las columnas, esto ya existe, pero no para las filas). Agregue la propiedad/columna del pedido original a las tablas de datos JMP al abrir/crear
La herramienta permite al usuario eliminar fácilmente varias columnas que tienen más de la cantidad especificada (umbral) de valores faltantes.

Esta herramienta permite al usuario completar los valores faltantes según el valor encontrado anterior/siguiente/más cercano. Ya existen herramientas que pueden hacer esto de una forma u otra (incluso JMP tiene filas de relleno), pero las que he usado/visto faltan en Al menos la opción de agrupación que debe realizar este complemento, tampoco debería requerir que tenga la tabla de datos ordenada si usa la columna Orden.

El propósito de la herramienta es proporcionar una interfaz de usuario con valores únicos enumerados de la columna seleccionada (nominal, ordinal) en diferentes formatos de la tabla de datos seleccionada. Desde esta lista, el usuario puede copiar y pegar valores directamente en el portapapeles o usar botones específicos para copiar.
La herramienta también proporciona una opción para pegar valores directamente en el cuadro y obtener los valores en diferentes formatos. Esto es útil cuando copia y pega valores de Excel, por ejemplo. También puede formatear valores desde el portapapeles directamente a la lista SQL.

El propósito de este complemento es proporcionar una manera para que el usuario cree una nueva tabla con una columna de valores agrupados de manera similar a la listagg de SQL. En el mejor de los casos, esta opción estaría en las plataformas Resumen y División de JMP, ya que de vez en cuando me gustaría conservar algunos valores incluso si los divido o los agrego con Resumen.

He creado elementos de la lista de deseos para ambos. Permitir que Split cree columnas de respuesta múltiple y Agregue Listagg/Concatenate/GROUP_CONCAT a la plataforma de resumen mesa.
Une dos tablas de datos con una columna continua. Puede unirse hacia atrás, hacia adelante, más cercano/más cercano. Admite el uso de tolerancia/distancia máxima para unir y el uso de columnas de agrupación. No es necesario ordenar los datos, pero sí acelera la ejecución de la herramienta. Inspiración parcialmente de Pandas Python - Fusionar Asof

He creado un elemento de la Lista de deseos que está parcialmente vinculado a esto. Agregue unión difusa/fusión asof/unión por columnas que no tienen coincidencias exactas
La mayoría de las opciones de ordenación de columnas que se encuentran en el menú Cols/Reordenar columnas de JMP no ofrecen la posibilidad de ordenar solo las columnas seleccionadas. Este complemento proporciona esas opciones a los usuarios de JMP.

Hay un elemento de la lista de deseos relacionado con esto (y es la razón por la que escribí este complemento) Reordenar columnas> Ordenar por nombre/tipo de datos/función> SÓLO COLUMNAS SELECCIONADAS
10. Reemplace X con Y ( reemplazar-x-con-y (github.com) )
Reemplaza coincidencias completas con otro valor en las columnas seleccionadas.

El propósito de esta herramienta es permitir a los usuarios de JMP dividir datos largos (apilados) y establecer límites de especificación directamente a partir de los datos originales si los datos están en el formato correcto.

Herramienta para proporcionar acceso rápido a scripts definidos por el usuario (preconfigurados para jthi-jmp-tools). También proporciona acceso para iniciar scripts, modificar su archivo settings.json y abrir el directorio. También permite cambiar la tabla de datos actual.
Strongy sugirió agregarlo como acceso directo con fácil acceso, por ejemplo el mío es Ctrl+Shift+Z. Si el script ya está abierto, al iniciarlo nuevamente aparecerá al frente.

Todavía hay mucho trabajo en progreso, pero la idea es proporcionar una lista de archivos de los directorios especificados por el usuario y permitir la apertura de archivos/directorios.

Eso es todo por ahora, intentaré terminar los complementos que aún están sin terminar en algún momento y corregir los errores que encuentre. Las versiones más actualizadas de los complementos se pueden encontrar en GitHub.
No dudes en descargarlo desde Fill Missing Cells , instalar el complemento y probarlo.
Se pueden hacer algunas cosas similares directamente en JMP con Fill:

y con el complemento Herramientas de tabla de datos . El complemento que he escrito tiene algunos beneficios adicionales, como agrupar columnas y no requerir que ordene la tabla de datos SI tiene alguna columna para ordenar (si no se proporciona ninguna columna de clasificación, usará el orden de filas).
VBA puede hacer tanto y se puede escribir de tantas maneras diferentes que no veo que sea factible convertir VBA directamente a JSL con un complemento "simple". La conversión puede realizarse en algunos casos sencillos, pero en caso contrario debe realizarse caso por caso. También puede usar JMP para ejecutar macros de Excel usando Ejecutar programa().
Convierta rápidamente la copia del navegador a código JSL con la función de reemplazo de EmEditor
CURL (CMD) se copia desde el navegador F12 y se convierte rápidamente a código JSL con la función de reemplazo de EmEditor.
Por supuesto, este proceso también debería implementarse con JSL.

rizo(cmd)
curl "http://excalc" -H "Connection: keep-alive" -H "Origin: http://excalc.icfqs.com:7616" -H "User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36" -H "Content-Type: text/plain" -H "Accept: */*" -H "Referer: http://excalc.icfqs.com:7616/site/tdx-zbfx/page-ddlj.html?setcode=1^&code=xxxxxx^&name=ssssss^&color=0" -H "Accept-Encoding: gzip, deflate" -H "Accept-Language: zh-CN,zh;q=0.9,en;q=0.8,zh-TW;q=0.7" -H "Cookie: ASPSessionID=" --data-binary "^[^{^\^"funcId^\^":2,^\^"offset^\^":0,^\^"count^\^":200,^\^"cond^\^":^\^"time,11700,33600^|amount,14^\^",^\^"modname^\^":^\^"TickAly^\^"^}^]" --compressed --insecure
EmEditor
document.selection.Replace("\\r","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("\\n\\n","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" -H ","\\n",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("curl \"(.{0,})$","u=\"\\1;h=[=>];//h[\"Content-Type\"]=\"application/json\";",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" --compressed","\\n--compressed",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace(" --data(.[^\"]{0,})(.{0,})$","\\njj=\\2;",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
//document.selection.Replace("\"cookie: (.{0,})$","h[\"cookie\"]=\"\\1;",eeReplaceAll | eeFindReplaceRegExp,eeExFindSeparateCRLF);
document.selection.Replace("\"cookie: (.{0,})$","h[\"cookie\"]=\"\\1;\\nzzzrs=New HTTP Request(URL(u),Method(\"GET\"),Headers(h));//rs=New HTTP Request(URL(u),Method(\"POST\"),JSON(jj),Headers(h));\\nr=rs<<SEND></SEND>JSL(<SPAN>sin terminar</SPAN>)
<CODE class=" language-jsl">u="http://excalc";h=[=>];//h["Content-Type"]="application/json";
//h["User-Agent"]="Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36";
//h["ac"]="*/*";
h["cookie"]="ASPSessionID=";
rs=New HTTP Request(URL(u),Method("GET"),Headers(h));//rs=New HTTP Request(URL(u),Method("POST"),JSON(jj),Headers(h));
r=rs<<SEND></SEND><CODE class=" language-jsl">