Ho ora 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 / JMP-Tools (github.com) deposito. Se hai suggerimenti su questi componenti aggiuntivi, puoi:
- Commenta questo post
- Apri 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 ho rilasciato il componente aggiuntivo qui
- Invia messaggio privato nella comunità JMP
Lo scopo dello sviluppo di questi è quello di fornire nuovi strumenti, migliorare gli strumenti che JMP ha già 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 da JMP Community. I componenti aggiuntivi includono alcune funzioni autonome che puoi utilizzare nei tuoi script includendo script corretti / copiandoli nel tuo codice, quindi se sei interessato a questo, ti suggerisco di dare un'occhiata ai codici sorgente.
I componenti aggiuntivi sono strutturati con un'idea di base che avevo 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 Gestore dei 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 JMP-Tools:

C'è anche un componente aggiuntivo per la barra degli strumenti. Questo può essere trovato dalla pagina dei rilasci "main-repository". Per lo più utile se hai installato i (tutti/la maggior parte) componenti aggiuntivi descritti qui.

Di seguito è riportata una rapida panoramica dei componenti aggiuntivi che ho creato, si noti che ci sono coppie che sono pesantemente in lavorazione. Gli script che possono essere trovati dalla community dovrebbero avere questo link "libro" nel titolo
.
L'idea è di fornire agli utenti statistiche di riepilogo rapide e azioni rapide che possono eseguire sulle colonne. Questo può essere utilizzato come primo strumento che hai eseguito quando ottieni un nuovo set di dati per ottenere una panoramica dei dati con cui stai lavorando (ispirato in parte da panda-profilazione (github.com) ).

Di volta in volta verranno visualizzati dati che sono stati codificati in modo errato e hanno un tipo di dati errato. In JMP, quando modifichi il tipo di dati da Carattere a Numerico, potresti facilmente finire con la perdita di alcuni dati a causa del modo in cui funziona la conversione. Lo scopo di questo strumento è convertire le colonne di caratteri selezionate (che possono essere convertite in sicurezza) 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, cambierà il tipo di dati 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 di ordinazione nella tabella dei dati con i numeri di riga correnti. Ciò è utile quando si avvia l'analisi e si desidera ordinare i dati, ma è comunque possibile ripristinare l'ordine originale. La colonna verrà creata all'inizio della tabella dati e se vengono create più colonne di ordinamento, viene aggiunta l'indicizzazione.

Ho anche creato un elemento della lista dei desideri sperando che qualcosa di simile possa essere trovato direttamente da JMP (per le colonne questo esiste già ma non per le righe) Aggiungi la proprietà/colonna dell'ordine originale alle tabelle di dati JMP in fase di apertura/creazione
Lo strumento consente all'utente di eliminare facilmente più colonne che hanno 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 a almeno l'opzione di raggruppamento che devi fare per questo componente aggiuntivo, inoltre questo non dovrebbe richiedere che la tabella di dati sia ordinata se usi la colonna Ordine.

Lo scopo dello strumento è fornire all'interfaccia utente valori univoci elencati dalla colonna selezionata (nominale, ordinale) in formati diversi 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 i 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 divido o aggrego con Riepilogo.

Ho creato elementi della lista dei desideri per entrambi Consenti a Dividi di creare colonne a risposta multipla e Aggiungi Listagg/Concatenate/GROUP_CONCAT alla piattaforma Riepilogo tavolo.
Unisci due datatable con colonna continua. Può unire indietro, 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 velocizzano l'esecuzione dello strumento. Ispirazione in parte da Python Pandas - Unisci Asof

Ho creato un elemento della Wish List che è parzialmente collegato a questo Aggiungi fuzzy join / asof merge / join by colonne che non hanno corrispondenze esatte
La maggior parte delle opzioni di ordinamento delle colonne trovate dal menu Cols/Riordina colonne di JMP non offrono la possibilità di ordinare solo colonne selezionate. Questo componente aggiuntivo fornisce queste opzioni agli utenti JMP.

C'è una voce della lista dei desideri relativa a questo (ed è il motivo per cui ho scritto questo componente aggiuntivo) Riordino 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 altri valori nelle colonne selezionate.

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

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

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

Per ora è tutto, proverò a finire i componenti aggiuntivi ancora malamente incompiuti ad un certo punto e correggere i bug che incontro. La maggior parte delle versioni aggiornate dei componenti aggiuntivi può essere trovata su GitHub.
Sentiti libero di scaricarlo da Riempi le celle mancanti e installa il componente aggiuntivo e provalo.
Alcune cose simili possono essere eseguite direttamente in JMP con Fill:

e con Componente aggiuntivo Strumenti tabella dati . Il componente aggiuntivo che ho scritto presenta alcuni vantaggi aggiuntivi come il raggruppamento di colonne e la mancata ordinazione della tabella dati SE si dispone di una colonna per l'ordinamento (se non viene fornita alcuna colonna di ordinamento, utilizzerà l'ordine di riga).
Grazie a JTHI per aver fornito così tanti strumenti efficienti.
È possibile creare un plug-in in grado di modificare rapidamente VBA di Excel in JSL?
Grazie!
VBA può fare così tanto e può essere scritto in così tanti modi diversi che non vedo fattibile convertire VBA direttamente in JSL con un "semplice" componente aggiuntivo. La conversione può forse essere eseguita per alcuni casi semplici, ma per il resto deve essere eseguita caso per caso. Puoi anche usare JMP per eseguire macro excel usando Run Program().
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 di EmEditor.
Naturalmente, questo processo dovrebbe essere implementato anche 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
Editore
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( Non finire )
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ì, sarebbe troppo lavoro convertire automaticamente tutti i VBA in JSL. Non è realistico.
Voglio vedere se VBA sul download dei dati dalle pagine Web può convertire automaticamente la sintassi principale in JSL e mantenere le variabili utilizzate da VBA.
Grazie jthi!