J'ai maintenant publié certains des compléments que j'ai écrits pour JMP. Les codes et addins (certains sont cryptés) peuvent être trouvés à partir de cette page GitHub jthi-jmp-tools (github.com) et un aperçu peut être trouvé à partir de jthi-jmp-tools / Outils JMP (github.com) dépôt. Si vous avez des suggestions sur ces compléments, vous pouvez :
- Commenter ce post
- Ouvrez un problème dans le référentiel GitHub correct lié à ce complément ou à un générique
- Commenter sur la page du complément de la communauté JMP si j'ai publié le complément ici
- Envoyer un message privé dans la communauté JMP
Le but de les développer est de fournir de nouveaux outils, d'améliorer les outils que JMP possède déjà et surtout d'améliorer mes compétences en script tout en écrivant du code quelque peu intéressant. Tous les addins peuvent être trouvés à partir de jthi-jmp-tools/JMP-Tools/versions (github.com) et vous devriez pouvoir les télécharger et les installer à partir de là. Certains sont également disponibles dans la communauté JMP. Les compléments incluent certaines fonctions autonomes que vous pouvez utiliser dans vos propres scripts en incluant les scripts corrects / en les copiant dans votre code, donc si cela vous intéresse, je vous suggère de jeter un œil aux codes sources.
Les compléments sont structurés avec une idée de base que j'avais il y a longtemps sur la façon de les structurer, ils ont donc pour la plupart la même structure de répertoires et certains fichiers communs. Par exemple, certains paramètres pouvant être enregistrés ont été enregistrés dans le fichier settings.json. Les compléments sont assemblés à l'aide de Gestionnaire de compléments car cela rend la gestion de plusieurs compléments beaucoup plus facile que les outils natifs fournis par JMP.
La plupart des compléments seront ajoutés au menu Compléments sous JMP-Tools :

Il existe également un complément pour la barre d'outils. Cela peut être trouvé à partir de la page des versions "main-repositorys". Surtout utile si vous avez installé (tous/la plupart) les compléments décrits ici.

Vous trouverez ci-dessous un aperçu rapide des addins que j'ai créés, notez qu'il y a quelques travaux en cours. Les scripts qui peuvent être trouvés dans la communauté doivent avoir ce lien "livre" dans le titre
.
L'idée est de fournir aux utilisateurs des statistiques récapitulatives rapides et des actions rapides qu'ils peuvent effectuer sur les colonnes. Cela peut être utilisé comme premier outil que vous exécutez lorsque vous obtenez un nouvel ensemble de données pour obtenir un aperçu des données avec lesquelles vous travaillez (inspiré en partie par pandas-profilage (github.com) ).

De temps en temps, vous obtiendrez des données qui ont été mal codées et qui ont un mauvais type de données. Dans JMP, lorsque vous modifiez le type de données de Caractère à Numérique, vous risquez assez facilement de perdre certaines données en raison du fonctionnement de la conversion. Le but de cet outil est de convertir les colonnes de caractères sélectionnées (qui peuvent être converties en toute sécurité) en colonnes numériques. L'outil obtient les valeurs dans les colonnes, puis vérifie si elles peuvent être converties en numériques. Et si tous (ou suffisamment) peuvent être convertis, cela changera le type de données en numérique. Il vous permet de sélectionner les colonnes que vous souhaitez convertir, permet d'utiliser le seuil de conversion et le taux d'échantillonnage.

Cet outil créera une colonne de commande dans une table de données avec les numéros de ligne actuels. Ceci est utile lorsque vous démarrez une analyse et que vous souhaitez trier les données, mais que vous avez toujours la possibilité de revenir à l'ordre d'origine. La colonne sera créée au début de la table de données et si plusieurs colonnes de classement sont créées, l'indexation est ajoutée.

J'ai également créé un élément de liste de souhaits en espérant que quelque chose d'un peu similaire puisse être trouvé directement à partir de JMP (pour les colonnes, cela existe déjà mais pas pour les lignes) Ajouter la propriété/la colonne de la commande d'origine aux tables de données JMP lors de l'ouverture/de la création
L'outil permet à l'utilisateur de supprimer facilement plusieurs colonnes qui ont plus que la quantité spécifiée (seuil) de valeurs manquantes.

Cet outil permet à l'utilisateur de remplir les valeurs manquantes en fonction de la valeur trouvée précédente / suivante / la plus proche. Il existe déjà des outils qui peuvent le faire d'une manière ou d'une autre (même JMP a des lignes de remplissage), mais ceux que j'ai utilisés / vus manquent à au moins l'option de regroupement que ce complément vous permet de faire, cela ne devrait pas non plus vous obliger à trier la table de données si vous utilisez la colonne Ordre.

Le but de l'outil est de fournir à l'interface utilisateur des valeurs uniques répertoriées à partir de la colonne sélectionnée (nominale, ordinale) dans différents formats à partir de la table de données sélectionnée. À partir de cette liste, l'utilisateur peut soit directement copier-coller des valeurs dans le presse-papiers, soit utiliser des boutons spécifiques pour la copie.
L'outil fournit également une option pour coller les valeurs directement dans la boîte et obtenir les valeurs dans différents formats. Ceci est pratique lorsque vous copiez des valeurs collées à partir d'Excel par exemple. Vous pouvez également formater les valeurs du presse-papiers directement dans la liste SQL.

Le but de cet addin est de fournir à l'utilisateur un moyen de créer une nouvelle table avec une ou plusieurs colonnes de valeurs groupées de la même manière que le listagg de SQL. Dans le meilleur des cas, cette option serait dans les plates-formes Summary et Split de JMP, car de temps en temps, j'aimerais conserver certaines valeurs même si je divise ou agrége avec Summary.

J'ai créé des éléments de liste de souhaits pour ces deux Autoriser Split à créer des colonnes de réponses multiples et Ajouter Listagg/Concatenate/GROUP_CONCAT à la plateforme Summary table.
Joignez deux tables de données avec une colonne continue. Peut joindre en arrière, en avant, le plus proche/le plus proche. Prend en charge l'utilisation de la tolérance/distance maximale pour la jointure et l'utilisation de la colonne de regroupement. Les données n'ont pas besoin d'être triées, mais cela accélère l'exécution de l'outil. Inspiration en partie de Pandas Python - Fusion Asof

J'ai créé un élément de la liste de souhaits qui est partiellement lié à celui-ci Ajouter une jointure floue / asof fusionner / joindre par colonnes qui n'ont pas de correspondances exactes
La plupart des options de classement des colonnes trouvées dans le menu Cols/Reorder Columns de JMP n'offrent pas la possibilité de classer uniquement les colonnes sélectionnées. Ce complément fournit ces options aux utilisateurs de JMP.

Il y a un élément de liste de souhaits lié à cela (et c'est la raison pour laquelle j'ai écrit ce complément) Réorganisation des colonnes > Trier par nom/type de données/rôle > COLONNES SÉLECTIONNÉES UNIQUEMENT
10. Remplacez X par Y ( remplacer-x-par-y (github.com) )
Remplace les correspondances complètes par une autre valeur dans les colonnes sélectionnées.

L'objectif de cet outil est de permettre aux utilisateurs de JMP de fractionner des données longues (empilées) et de définir des limites de spécification directement à partir des données d'origine si les données sont au format correct.

Outil pour fournir un accès rapide aux scripts définis par l'utilisateur (pré-configuré pour jthi-jmp-tools). Permet également d'accéder au lancement de scripts, à la modification de leur fichier settings.json et à l'ouverture du répertoire. Permet également de modifier la table de données actuelle.
Strongy a suggéré d'ajouter un raccourci avec un accès facile, par exemple le mien est Ctrl+Maj+Z. Si le script est déjà ouvert, le relancer le ramènera au premier plan.

C'est encore beaucoup de travail en cours, mais l'idée est de fournir une liste de fichiers des répertoires spécifiés par l'utilisateur et de permettre l'ouverture de fichiers/répertoires.

C'est tout pour l'instant, je vais essayer de terminer les compléments encore mal finis à un moment donné et de corriger les bugs que je rencontre. Les versions les plus récentes des compléments se trouvent sur GitHub.
N'hésitez pas à le télécharger sur Remplir les cellules manquantes et installez le complément et essayez-le.
Certaines choses similaires peuvent être faites directement dans JMP avec Fill :

et avec Complément Outils de table de données . Le complément que j'ai écrit présente des avantages supplémentaires tels que le regroupement de colonnes et ne vous oblige pas à trier la table de données SI vous avez une colonne à trier (si aucune colonne de tri n'est fournie, il utilisera l'ordre des lignes).
VBA peut faire tellement de choses et il peut être écrit de tellement de manières différentes que je ne vois pas qu'il soit possible de convertir VBA directement en JSL avec un complément "simple". La conversion peut peut-être être effectuée pour certains cas simples, mais sinon, elle doit être effectuée au cas par cas. Vous pouvez également utiliser JMP pour exécuter des macros Excel à l'aide de Run Program().
Convertissez rapidement la copie du navigateur en code JSL avec la fonction de remplacement d'EmEditor
CURL (CMD) est copié depuis le navigateur F12 et rapidement converti en code JSL avec la fonction de remplacement EmEditor.
Bien entendu, ce processus doit également être implémenté avec 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( Pas de finition )
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>
Oui, ce serait trop de travail pour convertir automatiquement tous les VBA en JSL. Ce n'est pas réaliste.
Je veux voir si VBA sur le téléchargement de données à partir de pages Web peut automatiquement convertir la syntaxe de base en JSL et conserver les variables utilisées par VBA.
Merci jthi!