
Dans cette démonstration, nous allons examiner les fonctions booléennes, ainsi que la fonction If. Je vais ouvrir une fenêtre d'éditeur de script. Le raccourci clavier est Ctrl+T, ou vous pouvez accéder au menu Fichier et utiliser la barre d'outils. Il existe plusieurs façons d'ouvrir cette nouvelle fenêtre d'éditeur de script. Je place le journal devant le journal. De retour dans la fenêtre d'éditeur de script, je vais saisir le code où j'affecte la valeur de à la variable x. Je vais l'initialiser. Ensuite, sur une nouvelle ligne, je vais effectuer une comparaison. JSL permet notamment de joindre des arguments par des opérateurs de comparaison et de les faire traiter par JMP comme une seule clause. Ainsi, si je saisis « inférieur à x » et « inférieur à égal », l'évaluation sera effectuée en une seule fois plutôt que séquentiellement, car ces opérateurs de comparaison, lorsque JMP les voit ainsi enchaînés, sont ce qu'on appelle des opérateurs d'élidation. Je peux donc exécuter cette ligne, et bien sûr, c'est une comparaison vraie qui est supérieure à tout en étant inférieure ou égale à. J'obtiens donc le booléen comme résultat. Maintenant, notre utilisation la plus courante des fonctions de comparaison est probablement lorsque nous testons des conditions particulières, par exemple, dans une fonction If. Je vais donc modifier la première ligne et remplacer le par un. J'affecte donc la valeur de à x. Puis je vais remplacer entièrement la deuxième ligne par mon instruction If. Donc, si et puis entre parenthèses, x inférieur à virgule, le résultat qui sera renvoyé sera la chaîne de caractères sous la limite. Il s'agit donc d'une simple instruction if/then. Si la condition est évaluée comme vraie, je renvoie ce résultat. Si la condition est évaluée comme fausse, je n'évalue pas le deuxième argument et je renvoie une valeur manquante. Je vais donc exécuter ce script complet. Encore une fois, raccourci clavier pour cela, Ctrl+R. Donc, si x stocke la valeur, alors elle est inférieure à et nous obtenons ce résultat. Mais si je modifie la valeur attribuée à x et que j'exécute le script complet, j'obtiens cette valeur manquante car la condition n'était pas vraie. Là encore, nous pouvons obtenir un résultat « else ». Ainsi, si la condition n'est pas vraie, au lieu d'une valeur manquante, je renvoie cet autre résultat. J'ouvre mes guillemets et saisis « Over the limit ». Si j'exécute le script complet, j'obtiens ce résultat « else ». La fonction « If » peut donc accepter autant de conditions et de résultats que nécessaire, et vous pouvez toujours obtenir ce résultat « else » si toutes les conditions sont fausses. Dans l'exemple suivant, nous allons prendre un tableau d'âges de personnes en années et le classer selon l'un des stades de développement psychologique d'Erik Erikson. Je retourne au journal dans la section « Section » et je clique sur « Données d'âge ». Nous avons donc des individus, et nous voulons les classer selon ces stades de développement psychologique. De retour au journal, je clique sur « Script de conversion d'âge en stade ». Ce script pré-écrit du journal envoie le message « Nouvelle colonne » à la table de données « Âge ». La colonne porte le titre « Étape » et le type de données est « Caractère ». Une fois la colonne créée, nous utilisons la fonction « for each row » pour la renseigner à l'aide d'une instruction « If ». Rappelons que lorsque JMP rencontre une condition « vrai » dans l'instruction « If », le seul autre argument évalué est le résultat correspondant. Aucune autre condition n'est évaluée. Ainsi, pour une personne âgée, toutes ces comparaisons d'âge sont vraies. Mais dès que nous évaluons « Oui, est supérieur à », nous obtenons le résultat « Adulte tardif » et passons à la ligne suivante, car nous procédons en itération. De cette façon, nous n'avons pas besoin de mettre entre parenthèses chaque niveau. Nous pouvons simplement indiquer « si c'est supérieur à », « si c'est supérieur à », etc. Il est important de noter que si vous examinez les données, elles sont distribuées de manière assez uniforme. Mais si vous observez les données et constatez qu'elles ont tendance à contenir beaucoup d'observations à l'extrémité supérieure ou à l'extrémité inférieure, c'est à partir de cette extrémité de votre distribution que vous souhaitez commencer le binning. En effet, si de très nombreuses personnes sont plus âgées que celles de votre table de données, celle-ci évaluera cette condition, renverra ce résultat et passera à l'étape suivante de l'itération, au lieu d'évaluer tout le reste. Ainsi, si la majorité des personnes sont plus âgées, vous accélérerez légèrement le traitement de votre script en passant à l'itération suivante dès que le résultat correct sera trouvé. Exécutons le script. Vous pouvez constater que la colonne a été créée et renseignée à l'aide de l'instruction If. Nous allons également aborder deux autres types de fonctions : les fonctions logiques et les fonctions d'interrogation. Dans de nombreux cas, vous devez tester plusieurs conditions à la fois. Pour ce faire, combinez vos conditions de manière logique. Voici quelques exemples de fonctions logiques : les fonctions ET et OU. La fonction ET, qui utilise l'opérateur perluète, garantit que toutes les conditions sont vraies. La fonction OU utilise l'opérateur barre verticale. Cela garantit qu'au moins une condition est vraie. Je vais donc utiliser la fenêtre de script contenant le script Age to Stage et la vider. Je vais définir x comme ayant la valeur d'un point-virgule, y aura la valeur d'un autre point-virgule, et je vais tout saisir sur une seule ligne et laisser le reformatage faire le ménage. Donc, si entre parenthèses, x est inférieur à, et l'opérateur ici pour OU est cette barre verticale, barre verticale, si x est inférieur à, OU y est supérieur à, voilà ma condition. Tapez une virgule. Si l'une de ces conditions, ou les deux, est vraie, je vais renvoyer le résultat « condition remplie ». Et si aucune n'est vraie, je vais renvoyer le résultat sous forme de chaîne de caractères « condition non remplie ». Je vais retaper mon point-virgule final, pour rappel. C'est une bonne pratique, mais il n'est pas obligatoire de terminer votre script par un point-virgule. Je vais faire un clic droit pour reformater. Cela permet de clarifier un peu les choses après avoir tout saisi sur une seule ligne. Si j'exécute le script et qu'au moins une de ces deux conditions est vraie, je m'attends à ce que la première condition de résultat soit remplie. C'est d'ailleurs ce que j'obtiens dans le journal. Si les deux conditions doivent être remplies, je remplace l'opérateur vertical par l'esperluette. Dans ce cas, une seule condition est vraie, mais pas les deux. Je m'attends donc à obtenir le résultat « else ». Et à l'exécution, c'est ce que je vois dans le journal. L'autre type de fonction que j'ai mentionné est la fonction d'interrogation. On souhaite parfois vérifier la nature d'une valeur. Par exemple, on peut avoir besoin de savoir si la valeur est un nombre ou une liste. Il existe de nombreux types de valeurs différents. Dans certains cas, une erreur peut survenir si vous essayez d'exécuter un script avec une valeur incorrecte stockée dans une variable. Il est donc important de vérifier ce point, et votre script peut se terminer d'une manière ou d'une autre, selon la nature de la valeur de cette variable. Je vais donc effacer à nouveau le contenu de l'éditeur de script. Sur la première ligne, je vais assigner une matrice à x. Je tape x, la fonction d'assignation, puis crochet, espace et virgule. Voilà ma première ligne. Espace, voilà ma deuxième ligne. Fermez le crochet, tapez le point-virgule, puis je le ferai dans le contexte d'une instruction if. Je souhaite également vous montrer qu'il existe une fonction de saisie semi-automatique pour les fonctions en JSL. Si je tape les premières lettres d'une fonction… Dans ce cas, les fonctions d'interrogation commencent toutes par les lettres IS pour « est ». Appuyez ensuite sur la touche Ctrl et la barre d'espace. Je peux parcourir cette liste avec les flèches vers le bas pour trouver la fonction d'interrogation souhaitée. Dans ce cas, j'utilise « Est une matrice », puis j'appuie sur Entrée pour la sélectionner et JMP complète la fonction. Bien sûr, je dois encore ouvrir les parenthèses : j'insère x, je les ferme, puis, avant la parenthèse fermante de l'instruction « Si », je saisis une virgule et j'obtiens les mêmes résultats : condition remplie, guillemets fermés, virgule, guillemets ouverts, condition non remplie. Je déplace les flèches pour m'assurer que tout le monde est aligné, puis je fais un clic droit pour reformater. Dans ce cas, x stocke une matrice. Je m'attends donc à obtenir ce premier résultat, et lorsque j'exécute le script, je l'obtiens. Supposons cependant que mon script effectue une action différente si x stocke une chaîne. Il peut s'agir d'une saisie utilisateur, d'une extraction d'une table de données ou d'un autre emplacement. Je vais donc remplacer le mot « matrice » par « chaîne » et exécuter le script. J'obtiens donc le résultat « else » car la condition est fausse. Vous avez vu ici quelques exemples de fonctions booléennes utilisant la fonction « If » pour classer des données, ainsi que l'utilisation de cette fonction conjointement avec des fonctions logiques et des fonctions d'interrogation.