Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Make the Answer Button (the red triangle) your friend.Faites du bouton de réponse (le triangle rouge) votre ami. Bienvenue dans ma série sur les bases du scripting dans JMP . C'est la troisième entrée dans une série qui est structuré pour que vous puissiez travailler ensemble. Si vous venez de nous rejoindre, vous voudrez probablement jeter un œil aux entrées précédentes de la série. Voici quelques liens vers ceux-ci :
Regarde; cela vous aidera avec ce qui s'en vient.
Très bien, attachez votre ceinture. Jusqu'à présent, nous n'avons travaillé avec aucun code (sauf si vous comptez l'index de script JSL). Cela se termine aujourd'hui. Aujourd'hui, nous allons utiliser la fenêtre de script JSL. Je sais que cela peut être anxiogène pour certains d’entre vous. Prenons quelques respirations profondes et allons-y.
N'écrivez pas pour le plaisir d'écrire !
Soyons honnêtes : le codage n’est pas un processus efficace à court terme. Pour les analyses et les graphiques ponctuels, les outils de glisser-déposer surpasseront presque toujours le codage en termes de retour sur investissement (le coût pour quelqu'un qui se lance dans un exercice de développement est tout simplement trop élevé). Certains insistent sur la création de scripts, même si une solution GUI est plus rapide ou non. Je ne sais pas pourquoi et je ne fais pas partie d'eux. J'envisagerai de coder lorsqu'un flux de travail est suffisamment difficile ou complexe pour que l'utilisation d'une interface graphique présente un risque important d'erreurs ultérieures. J'envisagerai également de coder lorsque je vais faire quelque chose encore et encore et je pourrai justifier le temps passé grâce à l'efficacité que je gagne grâce à l'automatisation. Cela ne veut pas dire que je ne code pas juste pour voir si je peux faire quelque chose. Ou que je ne choisis pas une méthode de codage plus compliquée juste pour apprendre quelque chose de nouveau. Mais ces cas constituent l’exception plutôt que la règle.
Maintenant, j'ai probablement tordu le nez de quelques personnes avec cette généralisation. Le problème avec ce genre de déclaration générale est qu’elle est assez noire et blanche. La vérité, comme tout dans la vie, est qu'il existe une zone grise où la proposition de valeur est un mélange entre une solution pointer-cliquer et le codage. La zone grise se trouve également là où se trouvent la plupart des aspirants codeurs. Ils savent qu'ils peuvent probablement gagner en efficacité grâce aux scripts, mais ils ne savent tout simplement pas par où commencer ou craignent que le temps perdu dans l'effort d'apprentissage initial ne soit trop important. Ce qui est bien dans la conception de JMP, c'est qu'il nous donne des outils que nous pouvons utiliser pour commencer à introduire JSL dans un flux de travail sans perdre trop d'efficacité lors de la manipulation de JSL. Et, comme tout dans JMP, cela commence par Le flux de travail JMP .
Le JMP Workflow (édition script)
Le workflow JMP se termine généralement par l'accès d'un utilisateur à un menu triangulaire rouge pour répondre à une question. Une autre fonction du menu triangulaire rouge est de fournir aux utilisateurs des méthodes pour sauvegarder leur travail (sauvegarder les scripts).

Il existe trois manières principales d'enregistrer des scripts :
- Vers la table de données : Cette méthode enregistre les scripts dans la table de données en tant que « Scripts de table ».Ces scripts enregistrent la méthode utilisée pour générer un rapport donné dans JMP et sont portables (c'est-à-dire qu'ils peuvent être copiés et collés entre des tables de données portant les mêmes noms de colonnes).
- Vers la fenêtre de script : Cette méthode enregistre les informations nécessaires à la reproduction d'un rapport donné dans une fenêtre de script. Il est utile pour les opérations en plusieurs étapes ou pour la production de plusieurs rapports. Le contenu d'une fenêtre de script peut également être transformé en script de table.
- Vers le Presse-papiers : Cette méthode est utile pour déplacer le code nécessaire à un rapport vers une autre plateforme JMP (par exemple, Query Builder, Application Builder, etc.) ou pour générer du code prototype pour des projets plus importants.
Il s’avère que les codeurs vraiment efficaces exploiteront largement ces options du triangle rouge au cours de leurs sessions de codage. Ils les utilisent pour accélérer leur codage (pourquoi appuyer sur des touches quand ce n'est pas nécessaire ?) ou générer un code prototype de plate-forme qui serait autrement facile à gâcher et difficile à déboguer. Pour les codeurs débutants, ces options offrent différentes opportunités d'en apprendre davantage sur et d'utiliser JSL tout en approfondissant les détails de son utilisation. C'est là que nous voulons commencer notre aventure de codage.
Enregistrer le script > Dans la table de données
Si vous êtes un utilisateur JMP dans la région de New York ou du New Jersey : Bonjour ! J'ai probablement visité votre entreprise à un moment donné. (Sinon, envoyez-moi un MP ; il faut régler ça.) Et, quand je suis venu sur place, vous m'avez probablement entendu insister sur ce point : Vous DEVEZ sauvegarder votre travail, et par « sauvegarder votre travail », j'entends utiliser le Enregistrer le script… dans la table de données option dans le menu du triangle rouge. Pour en revenir à ma première expérience d'automatisation d'un flux de travail, voici comment j'ai commencé : en enregistrant un ensemble de rapports Graph Builder standardisés dans une table JMP que je mettrais régulièrement à jour. Je ne saurais trop insister sur l'importance de ce petit conseil. C'est comme avoir le tournevis sonique du Dr Who. Les possibilités sont infinies.
Regardons un exemple rapide :
- Ouvrir Aide > Exemple de bibliothèque de données > Big Class Families.jmp
- Ouvrez une boîte de dialogue de distribution : Analyser > Distribution
- Mettez l'âge, le sexe, la taille et le poids dans Y, Colonnes et cliquez D'ACCORD .

- Dans le menu du triangle rouge Distributions, sélectionnez Enregistrer le script > Dans la table de données

- Donnez-lui un nom (ou utilisez simplement celui par défaut). Si vous utilisez la valeur par défaut dans ce cas, elle apparaîtra dans le tableau de données sous la forme Répartition 2 parce qu'il y a déjà un Distribution script dans la table de données.

- Revenez maintenant au tableau de données dans le coin supérieur gauche. Vous devriez voir votre script de table dans la liste avec une coche verte à côté.

Dans le contexte de cette série, ces scripts de table peuvent être considérés comme de petites applets (mini-applications) ou des macros. Ils sont directement portables entre les tables de données (il suffit de copier-coller), à condition que les noms de colonnes utilisés dans le script soient les mêmes . Ils peuvent également être modifiés (cliquez avec le bouton droit sur l'un d'entre eux et sélectionnez Modifier ). Ainsi, ils sont également portables vers des tables de données qui n'ont pas les mêmes noms de colonnes si vous souhaitez modifier les noms de colonnes dans le script, ce qui n'est pas grave. Nous verrons comment procéder dans le prochain article. Les scripts de table peuvent également être utilisés pour enchaîner des scripts plus petits afin d'automatiser un flux de travail plus important. Nous en parlerons également dans le prochain article.
Enregistrer le script > Dans le Presse-papiers
Nous allons aborder la dernière entrée du menu du triangle rouge : au presse-papiers article. Nous allons aborder celui-ci ensuite car l'entrée est identique à la vers la fenêtre de script option, mais beaucoup moins instructive. Cela ne veut pas dire que ce n’est pas utile, mais simplement que vous ne pouvez pas voir ce qui se passe. Alors, pour gagner du temps, voici ce que cela fait. Il prend le code créé par Enregistrer le script… dans la table de données et le place dans le presse-papiers afin que vous puissiez le mettre quelque part dans un autre script. C'est pratique. Et, à mesure que vos compétences en matière de script se développeront, vous découvrirez où cela vous est utile. Pour le moment, je souhaite revenir à l'option la plus intéressante et la plus utile : l'enregistrement dans une fenêtre de script.
Enregistrer le script > Dans la fenêtre du script
La prochaine entrée dans le Enregistrer le script dans… menu triangle rouge, nous allons aborder ce qui est probablement le plus instructif des trois dont je parle. L'enregistrement d'un script dans une fenêtre de script fait exactement ce qu'il dit : il crée une fenêtre d'éditeur de script (nous allons approfondir l'éditeur de script dans le prochain épisode) et la remplit avec du JSL généré par JMP pour recréer tout ce qui se trouvait dans le fichier. fenêtre à partir de laquelle vous travailliez. Le point important de cette entrée est que vous pouvez étudier le code et apprendre de ce que JMP a généré.
Regardons à nouveau un exemple trivial utilisant Big Class. Allez-y et cliquez sur le bouton vert à côté de votre script enregistré pour réexécuter l'analyse. Ensuite, dans la fenêtre du rapport, sélectionnez Enregistrer le script > Dans la fenêtre du script dans le menu du triangle rouge. Maintenant, regardez ce que JMP a écrit dans la fenêtre de script.

JMP a créé un rapport de distribution : Distribution(…);. JMP a placé deux sous-groupes de distribution nominale dans le rapport : Distribution nominale (Colonne (…)) et deux sous-groupes de distribution continue : Distribution continue (Colonne (…)). À la fin du script, JMP a mis un morceau de code incroyablement important : le « ; ». Il s'appelle « Glue Operator » et nous l'aborderons plus en détail dans le prochain épisode. Pour l'instant, il vous suffit de savoir que c'est un moyen de signaler à JMP lorsqu'il exécute le code qu'une autre instruction arrive. Le fait que JMP mette automatiquement fin à cela rend la vie du scripteur novice beaucoup moins compliquée.
Le dernier point qui rend cette entrée si utile est ce qui se passe si vous laissez cette fenêtre de script ouverte. Allez-y et fermez la plateforme de distribution, mais laissez votre éditeur de script ouvert. Maintenant, à l'aide du tableau de données ouvert, créez un rapport Ajuster Y par X (sous Analyser) en utilisant la taille comme variable X et le poids comme variable Y.

Ensuite, sélectionnez Enregistrer le script dans la fenêtre de script encore.

Avez-vous remarqué comment la fenêtre a été mise à jour avec une autre entrée ? Ce script va maintenant recréer les deux fenêtres avec lesquelles vous venez de travailler, une fois que vous saurez comment en exécuter une. En parlant de ça…
Exécuter des scripts
Donc, vous avez du code dans une fenêtre de script, et maintenant ? Vous souhaitez probablement pouvoir exécuter le code que vous avez créé. Je veux dire, vous pouvez simplement le laisser en place pour impressionner les gens qui passent devant votre bureau, mais il est probablement préférable de le gérer. Il existe plusieurs façons d'exécuter du code dans JMP : le menu principal, les raccourcis clavier, les barres d'outils en haut de la fenêtre de script, la touche Entrée ou simplement un clic droit. Passons rapidement en revue chacun d'eux.
Le menu principal et les raccourcis clavier
Le Script de lancement La commande se trouve au même endroit sous Windows et MacOS. Si vous êtes dans une fenêtre de script, allez sous Édition > Exécuter le script . Le raccourci clavier pour cela est CTRL+R pour les fenêtres et CMD+R pour MacOS.
Le bouton de la barre d'outils en haut de la fenêtre de script
Si vous regardez en haut de la fenêtre de script, vous devriez trouver un Script de lancement (sauf si les barres d'outils sont masquées). Sous Windows, cela ressemble à un petit bouton de lecture vert, semblable à ceux des scripts de table. Sous MacOS, cela ressemble à un petit document JSL avec un JMP Man et le bouton de lecture vert.
Utilisation de la touche Entrée
Notez ici que je veux dire le bouton dans la partie inférieure droite du pavé numérique sur un clavier étendu. Si vous appuyez sur ce bouton, JMP exécutera la ligne JSL où se trouve le curseur. J'ai beaucoup utilisé celui-ci avant de me familiariser avec le débogueur JSL.
Clic droit
La sélection d'un code et un clic droit feront apparaître un menu contextuel contenant un Script de lancement option vers le bas.
Je vous recommande d'essayer les différentes formes d'exécution de scripts et de trouver celle que vous préférez. J'ai un faible pour le raccourci clavier, sauf lorsque je suis dans Application Builder, où je préfère utiliser les options de la barre d'outils. Au fil du temps, vous vous tournerez probablement vers un ou deux qui deviendront vos favoris. En outre, en remarque : toutes ces options font des choses légèrement différentes selon que vous avez sélectionné une section de code, que votre curseur est à la fin d'une ligne ou que votre curseur est sur une ligne vide. Vous voudrez peut-être aussi expérimenter un peu avec cela.
Conclusion pour cette semaine
Très bien, croyez-le ou non, vous avez maintenant suffisamment d'informations pour être incroyablement dangereux avec JSL... dans le bon sens, bien sûr. Laissez-moi vous montrer ce que je veux dire.
Utilisons le script que nous avons créé aujourd'hui. Je vais faire un petit ajustement en encapsulant un New Window(); fonction autour de la distribution et des fonctions bivariées créées par JMP. Vous pouvez en savoir plus sur la Nouvelle Fenêtre(…) ; dans l'index des scripts. Notez que la première partie de New Window(…); commence sur la ligne 1 et la dernière partie est sur la ligne 10 ! J'ai configuré mon éditeur de script pour tracer une jolie petite ligne les reliant afin que je puisse voir où ils se trouvent (nous en parlerons plus tard).

Ensuite, copions le texte de ce script et revenons à la table de données. Sélectionner Nouveau scénario dans le menu triangulaire rouge dans le coin supérieur gauche du tableau de données.

Collez le texte du script dans la boîte de dialogue, donnez-lui un nom utile et cliquez sur D'ACCORD .

Si vous suivez, vous devriez voir votre rapport dans la zone de script du tableau de données. Si vous l'exécutez, vous devriez obtenir quelque chose comme ceci :

Et c’est la petite astuce que j’ai utilisée pour transformer un marathon analytique de deux jours en un exercice de copier-coller de 15 minutes. J'ai passé un peu de temps à intégrer les données dans une table de données JMP que je pourrais facilement mettre à jour. J'ai ensuite exporté tous les graphiques dont j'avais besoin pour ce rapport dans une seule fenêtre JSL en utilisant Enregistrer le script dans la fenêtre de script . Je les ai enveloppés dans une nouvelle fenêtre (afin qu'ils soient tous au même endroit) et j'ai placé ce script dans un script de table dans la table de données. Est-ce que je travaillais avec JSL ? Oui. Est-ce que j'écrivais beaucoup de code ? Non. Ai-je augmenté mon efficacité ? Certainement.
Maintenant que nous abordons le codage proprement dit, je dois insister sur ce dernier point. Le codage consiste à augmenter votre efficacité :
- Avec quelle efficacité vous pouvez résoudre les problèmes.
- Avec quelle efficacité vous pouvez créer des rapports (afin que vous puissiez revenir à la résolution des problèmes).
- Avec quelle efficacité vous pouvez travailler avec vos données.
Le code que nous allons créer dans cette série est généré par ordinateur ou c'est simple. Et c'est OK. Il s'agit de efficace code pas sexy code. Quand j'étais à l'université, l'un de mes professeurs (un collègue musicien) avait une citation sur le mur à l'extérieur de son bureau : Une musique simple n'est ni meilleure ni pire qu'une musique complexe. Il en va de même avec le code. Cela m'a été rappelé il y a quelque temps par la personne qui m'a appris à coder. Alors souviens-toi: Un code simple n’est ni meilleur ni pire qu’un code complexe. Tout ce qui compte, c'est qu'il remplisse son objectif et augmente l'efficacité ou la productivité de ceux qui l'utilisent.
Devoirs
Pour l’exercice de cette semaine, vous allez revenir sur votre énoncé de problème. Réfléchissez à la liste de tâches que vous avez créée et générez du code à l'aide des flux de travail que nous avons abordés aujourd'hui. Le code peut être le code réel que vous allez utiliser ou un code prototype que vous pensez devoir modifier légèrement pour répondre à votre énoncé de problème. Essayez de générer autant d'éléments dont vous pensez avoir besoin à l'aide du menu du triangle rouge et enregistrez-les sous forme de fichiers .jsl. Si vous êtes bloqué ou ne trouvez pas de moyen pour que JMP génère le code dont vous avez besoin, demandez de l'aide, soit dans la communauté, soit dans les commentaires ici. N'oubliez pas de rechercher dans l'aide, et n'oubliez pas que vous pouvez également effectuer une recherche dans la communauté !
En attendant la prochaine fois, bonne chance et bon codage !