Ahora he publicado algunos de los complementos que he escrito para JMP. Los códigos y complementos (algunos están encriptados) se pueden encontrar en esta página de GitHub jthi-jmp-herramientas (github.com) y la descripción general se puede encontrar en jthi-jmp-herramientas / JMP-herramientas (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
- Comenta en la página del complemento JMP Community 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 secuencias de comandos mientras escribo código algo interesante. Todos los complementos se pueden encontrar en jthi-jmp-tools/JMP-Tools/releases (github.com) y debería 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 los scripts correctos o 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 en su mayoría 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 juntan usando 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 los complementos (todos/la mayoría) descritos aquí.

A continuación se muestra una descripción general rápida de los complementos que he creado, tenga en cuenta que hay un par que están en gran medida en progreso. Los guiones que se pueden encontrar en la comunidad deben tener este enlace de "libro" en el título
.
La idea es proporcionar al usuario estadísticas de resumen rápido y acciones rápidas que pueden realizar en las columnas. Esto se puede usar como la primera herramienta que ejecutó cuando obtiene un nuevo conjunto de datos para obtener una descripción general de los datos con los que está trabajando (inspirado parcialmente por perfiles de pandas (github.com) ).

De vez en cuando, encontrará 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 posible que termine perdiendo algunos datos debido a cómo funciona la conversión. El propósito de esta herramienta es convertir columnas de caracteres seleccionados (que se pueden convertir de forma segura) en columnas numéricas. La herramienta obtiene los valores en columnas y luego verifica si se pueden convertir a numéricos. Y si todos ellos (o suficientes) se pueden convertir, cambiará el tipo de datos a numérico. Le permite seleccionar las columnas que desea convertir, permite usar el umbral para la conversión y la tasa de muestreo.

Esta herramienta creará una columna de pedido en la tabla de datos con los números de fila actuales. Esto es útil cuando está iniciando el análisis y desea ordenar los datos, pero aún tiene la posibilidad de retroceder al orden original. La columna se creará al comienzo 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 que se pudiera encontrar algo un poco similar directamente desde JMP (para las columnas esto ya existe pero no para las filas) Agregar propiedad/columna de orden original a las tablas de datos JMP al abrir/crear
La herramienta permite al usuario eliminar fácilmente múltiples columnas que tienen más de la cantidad especificada (umbral) de valores faltantes.

Esta herramienta permite al usuario completar los valores faltantes en función del 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 hacer este complemento, además, esto no debería requerir que tenga ordenada la tabla de datos si usa la columna Ordenar.

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 ofrece una opción para pegar valores directamente en el cuadro y obtener los valores en diferentes formatos. Esto es útil cuando copia valores de pegado 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 forma para que el usuario cree una nueva tabla con una columna (s) 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 Summary y Split de JMP, ya que de vez en cuando me gustaría mantener algunos valores incluso si divido o agrego con Summary.

He creado elementos de la lista de deseos para ambos Permitir dividir para crear columnas de respuesta múltiple y Agregue Listagg/Concatenate/GROUP_CONCAT a la plataforma de resumen mesa.
Unir dos tablas de datos con 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 usar la columna de agrupación. No es necesario ordenar los datos, pero acelera la ejecución de la herramienta. Inspiración parcialmente de Python Pandas - Fusionar Asof

He creado un elemento de la lista de deseos que está parcialmente vinculado a este Agregue una unión aproximada/asof merge/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/Reorder Columns 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) Reordenación de columnas > Ordenar por nombre/tipo de datos/función > SOLO COLUMNAS SELECCIONADAS
10. Reemplace X con Y ( reemplazar-x-con-y (github.com) )
Reemplaza las coincidencias completas con otro valor en las columnas seleccionadas.

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

Herramienta para proporcionar acceso rápido a scripts definidos por el usuario (preconfigurado 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ó agregar como acceso directo con fácil acceso, por ejemplo, el mío es Ctrl + Shift + Z. Si la secuencia de comandos ya está abierta, volver a iniciarla la traerá al frente.

Esto todavía es 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, trataré de terminar los complementos aún mal terminados en algún momento y corregir los errores que encuentre. La mayoría de las versiones actualizadas de los complementos se pueden encontrar en GitHub.
Siéntete libre de descargarlo desde Rellenar celdas faltantes e instale el complemento y pruébelo.
Algunas cosas similares se pueden hacer directamente en JMP con Fill:

y con Complemento de 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 ordenación, usará el orden de Fila).
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 se puede realizar en algunos casos simples, pero de lo contrario se debe realizar caso por caso. También puede usar JMP para ejecutar macros de Excel usando Ejecutar programa ().
Convierta rápidamente la copia del navegador en 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 debe implementarse con JSL.

CURL(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( no terminar )
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>
Sí, sería demasiado trabajo convertir automáticamente todos los VBA a JSL. No es realista.
Quiero ver si VBA sobre la descarga de datos de páginas web puede convertir automáticamente la sintaxis central a JSL y mantener las variables utilizadas por VBA.
Gracias jti!