Ainsi, dans cette démonstration, nous allons examiner la sélection de lignes spécifiques et utiliser la commande de sous-ensemble, qui se trouve de manière interactive dans le menu Tables, pour extraire un sous-ensemble de la table de données. Donc dans le journal du cours dans la section je vais cliquer sur Ski Lodge Temperature Data. Et c'est un tableau de données large, mais assez court. Et donc notre scénario ici est que nous avons une station de ski qui a une station météo et qui enregistre la température toutes les heures et l'enregistre dans un fichier. Ainsi, chaque observation du fichier contiendra la date et les relevés de température horaires. Il stats à AM, est donc la température à AM. Supposons maintenant que lorsque la température tombe en dessous de moins degrés Celsius, nous prévoyons d'allumer les machines à fabriquer de la neige, car à cette température, il peut être trop froid pour neiger. Et donc nous voulons regarder notre dossier de données historiques pour trouver des jours dans le dossier où nous aurions utilisé cette machine à fabriquer de la neige. Peut-être essayons-nous de justifier l'ajout d'une autre machine ou le remplacement de celle existante. Et donc quelques choses ici. La première est que cette température a été enregistrée sur une échelle Fahrenheit, pas Celsius. Et deuxièmement, nous n'utilisons qu'un petit sous-ensemble de données. Maintenant, ceux-ci sont dans l'ordre du jour, mais cela représente l'une de nos meilleures pratiques lorsque vous allez travailler sur un grand ensemble de données, essayez d'obtenir un échantillon représentatif d'observations pour développer votre script afin que vous puissiez développer et tester votre script par rapport à un sous-ensemble plus petit. Encore une fois, représentant, espérons-le, tous les problèmes que vous pourriez vous attendre à trouver dans les données. Et ensuite, vous pouvez le tester par rapport à l'ensemble de données complet. Donc, dans cet exemple, j'espère que c'est représentatif, que nous n'avons pris qu'une seule semaine de données. L'autre chose est que nous avons des températures Fahrenheit enregistrées mais notre coupure est de moins degrés Celsius. Ainsi, bien que nous puissions certainement convertir moins de degrés Celsius en Fahrenheit, nous allons plutôt réitérer ce concept de travail avec les opérations vectorisées et nous allons extraire toutes les températures Fahrenheit sous forme de matrice et les convertir en températures Celsius. Donc, dans le journal, il y a un script pré-écrit appelé Isolate Snow-Making Days Script. Et je vais exécuter une pièce à la fois. Et dans cette démonstration, je vais en fait utiliser l'option de journal intégré plutôt que de naviguer dans la fenêtre du journal. Je vais donc faire un clic droit dans la fenêtre de mon éditeur de script et sélectionner Afficher le journal intégré. Et je vais juste redimensionner cela pour que nous puissions toujours voir le script entier dans la partie éditeur de la fenêtre. Je vais donc sélectionner la ligne et l'exécuter. Et ainsi, cela obtient la référence pour la table de données actuelle, la table de données Ski Lodge Temperature, et la stocke dans dt. Ensuite, je vais envoyer le message get en tant que matrice et le stocker dans la variable tempF. Je vais donc exécuter la ligne Et souvent avec une matrice plus grande, plutôt que d'afficher la matrice dans le journal, nous obtenons simplement les dimensions de la matrice et l'indication que cela a été attribué. Remarquez maintenant qu'il y a sept lignes et colonnes. Et si je reviens à la table de données, il y a des colonnes dans cette table de données. Alors pourquoi n'avons-nous retiré que des colonnes ? Eh bien, si vous regardez la colonne de date, d'une part, vous pouvez voir que c'est nominal. Cela suggère donc que cela est peut-être traité comme des données de caractères plutôt que comme des chiffres. Et je peux en outre confirmer cela, je pourrais bien sûr aller aux informations de la colonne, mais je peux également le confirmer en élargissant légèrement la colonne et en notant que les valeurs sont justifiées à gauche, c'est ainsi que JMP gère les données de caractères. Ainsi, lorsque j'ai envoyé get comme matrice à la table de données, il a ignoré cette colonne de caractères et extrait uniquement les colonnes numériques. Line va alors prendre chaque élément de la variable tempF, cette matrice qui y est stockée, et la convertir en degrés Celsius et la stocker dans tempC. Et encore une fois, je reçois le même message dans le journal, mais vous pouvez survoler tempf ou tempc bien sûr pour voir leurs valeurs. Ensuite, je veux compter les lignes dans tempC et j'ai mentionné cela comme une pratique exemplaire, en comptant les lignes ou les colonnes en dehors d'une boucle. Je compte donc les lignes dans la matrice tempC et les stocke dans la variable nr. Je vais donc courir en ligne et bien sûr il y en a sept. L'autre chose que je veux faire, c'est que je veux avoir... Je vais créer deux matrices. L'un qui donne la température minimale à un jour donné, c'est minTemp, et l'autre qui va indiquer si l'enneigeur aurait dû être allumé ou non, et ça s'appelle Machine. Et ils vont tous les deux commencer avec un certain nombre de lignes, une colonne et des valeurs manquantes. Et donc en ligne, nous mettons en cascade la fonction assign. J'utilise cette fonction J pour créer une matrice avec un certain nombre de lignes, voici le nombre de lignes de tempC, cette colonne unique comme je l'ai mentionné et la valeur manquante. Et si Machine, et minTemp, et toutes les autres variables vont commencer avec la même valeur, nous pouvons simplement les affecter de cette manière en cascade comme vous le voyez en ligne. Je vais donc exécuter cela, et dans le journal et si vous survolez Machine ou minTemp vous voyez juste cette colonne de valeurs manquantes. Ensuite, je veux boucler, et je commence par un compteur que je teste r inférieur ou égal aux nombres stockés dans nr, puis le corps de la boucle for est que je vais avoir une variable appelée obs qui prendra dans ce cas, la première ligne et toutes les colonnes de tempC. Je vais trouver la valeur minimale dans cette ligne et la mettre à la rième ou première place, dans minTemp. Ensuite, je comparerai la valeur que je viens de mettre dans minTemp dans cette position à moins et si cette comparaison est vraie, si la valeur est inférieure à moins, j'obtiendrai un booléen est le résultat et le mettrai en première position dans Machine, alors que si c'est faux, s'il est supérieur ou égal à moins, je mettrai Machine. Ensuite, nous mettons à jour, nous testons à nouveau, et maintenant obs sera écrasé par la ligne suivante dans la table de données. Et nous ferons les mêmes étapes jusqu'à ce que nous remplissions à la fois minTemp et Machine. Je vais donc parcourir les lignes et nous pouvons survoler minTemp. Et encore une fois, il apparaît dans l'aide au survol, il apparaît également au bas de la fenêtre de saisie du script que vous pouvez voir ci-dessous. Et je peux survoler Machine et il y a ceux-là et Maintenant, les deux dernières étapes, nous aurions pu cascader ces messages, mais à des fins de démonstration, nous allons les séparer. Je vais donc envoyer un nouveau message de colonne à dt. Il s'appellera minTemp, et les valeurs seront simplement celles que je viens d'obtenir de cette boucle for. Je vais donc parcourir les lignes Et vous pouvez voir en arrière-plan que cette nouvelle colonne a été créée. J'aurais pu ajouter un argument de format à la nouvelle colonne pour avoir un nombre fixe de décimales, par exemple. Cela a également renvoyé une référence d'objet de colonne que j'aurais pu stocker dans une variable si j'avais prévu de travailler à nouveau avec cette colonne. Ensuite, le prochain morceau de code définit de nouvelles colonnes un message à dt. Celui-ci s'appelle Make Snow. Et les valeurs proviennent de ce vecteur de colonne de machine, qui a et Et ici, mon script va demander que nous utilisions des étiquettes de valeur où s'il y a un pour la valeur de données, l'étiquette sera non, et s'il y a un pour la valeur de données le l'étiquette sera oui. Et puis nous utilisons bien sûr le booléen pour activer l'option d'utilisation des étiquettes de valeur. Je vais donc parcourir les lignes Encore une fois, nous créons une instance d'un objet de colonne. Et je veux revenir à la table et faire défiler. Donc, dans la colonne en ce moment, ce que nous affichons est non et oui. Dans le panneau des colonnes, si je fais défiler vers le bas, vous pouvez toujours voir que Make Snow est continu, ce qui signifie qu'il s'agit de données numériques pour les valeurs de données réelles. Et une autre chose avec les étiquettes de valeur lorsque je les utilise - et cet astérisque dans le panneau des colonnes indique également qu'il y a une propriété, et si vous avez cliqué dessus, vous verrez celle-ci - lorsque j'utilise des étiquettes de valeur , si je survole une cellule du tableau de données, la valeur réelle des données s'affiche. Mais si je devais faire un graphique en ce moment ou n'importe quel type d'analyse, il utiliserait ces étiquettes tant qu'elles sont activées. Et puis de retour dans le script, encore une fois, nous pourrions cascader ces messages dans la table de données, mais à des fins de démonstration, nous allons les faire dans ces étapes. J'envoie select where à la table de données, et je recherche les lignes où la valeur dans la colonne Make Snow est égale à Donc je vais exécuter la ligne Et vous pouvez voir en arrière-plan qu'il y a quatre lignes qui ont été sélectionnées. Et puis finalement j'envoie la commande subsect à la table de données. Je fournis un nom de table de sortie et spécifie les colonnes. Et parce que j'ai sélectionné quatre lignes, je n'ai pas à dire quelles lignes je veux. Ce seront automatiquement ceux qui seront insérés dans la table des sous-ensembles. Je vais donc parcourir les lignes Et maintenant nous avons cette table de sous-ensembles. Encore une fois à ce stade, nous pourrions choisir de formater les données de température minimale. Le script source reflète le sous-ensemble. Et jetons un coup d'œil à cela, si je fais un clic droit sur la source et sélectionne modifier. Chaque fois que je crée un nouveau script à l'aide d'une commande du menu Tables, que je le fasse de manière interactive ou avec un script, j'obtiens le script source. Et donc cela montre simplement que le sous-ensemble était la commande de table utilisée. La prudence avec le sous-ensemble est qu'il ne sait pas pourquoi ces lignes ont été extraites, il code donc ces lignes en dur. Il n'y a aucune base pour cette sélection dans le script que JMP écrit. Et JMP remplace également cette tendance par défaut à simplement extraire les lignes sélectionnées en mettant a comme argument des lignes sélectionnées. Donc, si vous vouliez capturer le script et l'adapter à un autre script que vous étiez en train d'écrire, vous voudriez vous débarrasser des deux lignes que j'ai montrées, et avant d'envoyer le message de sous-ensemble, effectuez les sélections logiques de votre script. . Je vais donc annuler ce script. Cela a donc été un exemple d'utilisation d'une commande du menu de la table, mais aussi de travail à nouveau avec les données sous forme de matrices.