Ora ho pubblicato alcuni dei componenti aggiuntivi che ho scritto per JMP. I codici e i componenti aggiuntivi (alcuni sono crittografati) possono essere trovati da questa pagina GitHub jthi-jmp-tools (github.com) e la panoramica può essere trovata da jthi-jmp-tools / Strumenti JMP (github.com) deposito. Se hai suggerimenti su questi componenti aggiuntivi, puoi:
- Commenta questo post
- Aprire un problema nel repository GitHub corretto relativo a quel componente aggiuntivo o a uno generico
- Commenta la pagina del componente aggiuntivo della community JMP se è stato rilasciato il componente aggiuntivo qui
- Invia un messaggio privato nella comunità JMP
Lo scopo di svilupparli è fornire nuovi strumenti, migliorare gli strumenti già disponibili in JMP e soprattutto migliorare le mie capacità di scripting mentre scrivo codice piuttosto interessante. Tutti i componenti aggiuntivi possono essere trovati da jthi-jmp-tools/JMP-Tools/releases (github.com) e dovresti essere in grado di scaricarli e installarli da lì. Alcuni possono essere trovati anche nella community JMP. I componenti aggiuntivi includono alcune funzioni autonome che puoi utilizzare nei tuoi script includendo gli script corretti/copiandoli nel tuo codice, quindi se ti interessa, ti suggerisco di dare un'occhiata ai codici sorgente.
I componenti aggiuntivi sono strutturati con alcune idee di base che avevo molto tempo fa su come strutturarli, quindi hanno per lo più la stessa struttura di directory e alcuni file comuni. Ad esempio, alcune impostazioni che possono essere salvate sono state salvate nel file settings.json. I componenti aggiuntivi vengono messi insieme utilizzando Gestione componenti aggiuntivi poiché rende la gestione di più componenti aggiuntivi molto più semplice rispetto agli strumenti nativi forniti da JMP.
La maggior parte dei componenti aggiuntivi verrà aggiunta al menu Componenti aggiuntivi in Strumenti JMP:

C'è anche un componente aggiuntivo per la barra degli strumenti. Questo può essere trovato dalla pagina delle versioni "repository principali". Utile soprattutto se hai installato i componenti aggiuntivi (tutti/la maggior parte) descritti qui.

Di seguito è riportata una rapida panoramica dei componenti aggiuntivi che ho creato, tieni presente che ci sono coppie su cui sono fortemente in corso i lavori. Gli script che possono essere trovati dalla community dovrebbero avere questo collegamento "libro" nel titolo
.
L'idea è fornire agli utenti statistiche di riepilogo rapide e azioni rapide che possono eseguire sulle colonne. Questo può essere utilizzato come primo strumento che esegui quando ottieni un nuovo set di dati per avere una panoramica dei dati con cui stai lavorando (ispirato parzialmente da profilazione panda (github.com) ).

Di tanto in tanto ti imbatterai in dati che sono stati codificati in modo errato e hanno un tipo di dati errato. In JMP quando cambi il tipo di dati da Carattere a Numerico potresti facilmente finire con la perdita di alcuni dati a causa del funzionamento della conversione. Lo scopo di questo strumento è convertire le colonne di caratteri selezionate (che possono essere convertite in modo sicuro) in colonne numeriche. Lo strumento ottiene i valori nelle colonne e quindi controlla se possono essere convertiti in numerici. E se tutti (o abbastanza) possono essere convertiti, il tipo di dati verrà modificato in numerico. Ti consente di selezionare le colonne che desideri convertire, consente di utilizzare la soglia per la conversione e la frequenza di campionamento.

Questo strumento creerà la colonna Ordinazione nella tabella dati con i numeri di riga correnti. Ciò è utile quando si avvia l'analisi e si desidera ordinare i dati, ma si ha comunque la possibilità di tornare all'ordine originale. La colonna verrà creata all'inizio della tabella dati e se vengono create più colonne di ordinamento, verrà aggiunta l'indicizzazione.

Ho anche creato una voce della lista dei desideri sperando che qualcosa di simile possa essere trovato direttamente da JMP (per le colonne esiste già ma non per le righe) Aggiungi la proprietà/colonna dell'ordine originale alle tabelle dati JMP all'apertura/creazione
Lo strumento consente all'utente di eliminare facilmente più colonne con una quantità (soglia) di valori mancanti superiore a quella specificata.

Questo strumento consente all'utente di riempire i valori mancanti in base al valore trovato precedente/successivo/più vicino. Esistono già strumenti che possono farlo in un modo o nell'altro (anche JMP ha righe di riempimento), ma quelli che ho usato/visto mancano in almeno l'opzione di raggruppamento che questo componente aggiuntivo deve eseguire, inoltre ciò non dovrebbe richiedere l'ordinamento della tabella dati se si utilizza la colonna Ordine.

Lo scopo dello strumento è fornire un'interfaccia utente con valori univoci elencati dalla colonna selezionata (nominale, ordinale) in diversi formati dalla tabella dati selezionata. Da questo elenco l'utente può copiare e incollare direttamente i valori negli appunti o utilizzare pulsanti specifici per la copia.
Lo strumento fornisce anche un'opzione per incollare i valori direttamente nella casella e ottenere i valori in diversi formati. Questo è utile quando copi valori incollati da Excel, ad esempio. Puoi anche formattare i valori dagli appunti direttamente nell'elenco SQL.

Lo scopo di questo componente aggiuntivo è fornire all'utente un modo per creare una nuova tabella con una o più colonne di valori raggruppati in modo simile a listagg di SQL. Nel migliore dei casi questa opzione sarebbe nelle piattaforme Riepilogo e Dividi di JMP poiché di tanto in tanto vorrei mantenere alcuni valori anche se li divido o aggrego con Riepilogo.

Ho creato elementi della lista dei desideri per entrambi Consenti alla suddivisione di creare colonne a risposta multipla E Aggiungi Listagg/Concatenate/GROUP_CONCAT alla piattaforma Riepilogo tavolo.
Unisci due tabelle dati con colonna continua. Può unirsi all'indietro, in avanti, più vicino/più vicino. Supporta l'utilizzo della tolleranza/distanza massima per l'unione e l'utilizzo della colonna di raggruppamento. I dati non devono essere ordinati ma accelerano l'esecuzione dello strumento. Ispirazione parzialmente da Panda Python - Unisci Asof

Ho creato un elemento della lista dei desideri che è parzialmente collegato a questo Aggiungi fuzzy join / asof merge / join per colonne che non hanno corrispondenze esatte
La maggior parte delle opzioni di ordinamento delle colonne presenti nel menu Cols/Reorder Columns di JMP non offrono la possibilità di ordinare solo le colonne selezionate. Questo componente aggiuntivo fornisce tali opzioni agli utenti JMP.

C'è una voce della lista dei desideri correlata a questo (ed è il motivo per cui ho scritto questo componente aggiuntivo) Riordinamento delle colonne > Ordina per nome/tipo di dati/ruolo > SOLO COLONNE SELEZIONATE
10. Sostituisci X con Y ( sostituisci-x-con-y (github.com) )
Sostituisce le corrispondenze complete con un altro valore nelle colonne selezionate.

Lo scopo di questo strumento è consentire agli utenti JMP di dividere dati lunghi (impilati) e impostare limiti di specifica direttamente dai dati originali se i dati sono nel formato corretto.

Strumento per fornire un accesso rapido agli script definiti dall'utente (preconfigurati per jthi-jmp-tools). Fornisce inoltre l'accesso all'avvio degli script, alla modifica del file settings.json e all'apertura della directory. Consente inoltre di modificare la tabella dati corrente.
Fortemente suggerito di aggiungerlo come scorciatoia con accesso facile, ad esempio il mio è Ctrl+Shift+Z. Se lo script è già aperto, avviarlo nuovamente lo porterà in primo piano.

Questo è ancora un lavoro in corso, ma l'idea è quella di fornire un elenco di file delle directory specificate dall'utente e consentire l'apertura di file/directory.

Per ora è tutto, prima o poi proverò a completare i componenti aggiuntivi ancora incompleti e a correggere i bug che riscontro. Le versioni più aggiornate dei componenti aggiuntivi possono essere trovate su GitHub.
Sentiti libero di scaricarlo da Riempi le celle mancanti , installa il componente aggiuntivo e provalo.
Alcune cose simili possono essere fatte direttamente in JMP con Fill:

e con il componente aggiuntivo Strumenti tabella dati . Il componente aggiuntivo che ho scritto presenta alcuni vantaggi aggiuntivi come il raggruppamento di colonne e la non necessità di ordinare la tabella dati SE si dispone di colonne per l'ordinamento (se non viene fornita alcuna colonna di ordinamento, utilizzerà l'ordine delle righe).
Grazie a JTHI per aver fornito così tanti strumenti efficienti.
È possibile creare un plug-in in grado di modificare rapidamente il VBA di Excel in JSL?
Grazie!
VBA può fare così tanto e può essere scritto in così tanti modi diversi che non vedo possibile convertire VBA direttamente in JSL con un "semplice" componente aggiuntivo. La conversione può forse essere fatta per alcuni casi semplici, ma per il resto deve essere fatta caso per caso. Puoi anche utilizzare JMP per eseguire macro Excel utilizzando Esegui programma().
Converti rapidamente la copia del browser in codice JSL con la funzione di sostituzione di EmEditor
CURL (CMD) viene copiato dal browser F12 e convertito rapidamente in codice JSL con la funzione di sostituzione EmEditor.
Naturalmente questo processo dovrebbe essere implementato anche con JSL.

arricciatura(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>Non finire</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">