Aperçu
En utilisant le langage de script JMP (JSL), vous pouvez écrire un script qui attribue des valeurs en fonction des données stockées dans une table de données différente. L'exemple de script suivant montre comment utiliser une table de recherche pour attribuer des niveaux de scolarité en fonction de l'âge d'un élève. Le script effectue les opérations suivantes :
- Ouvrez le tableau de données d’origine contenant une liste d’étudiants et leurs âges.
- Ajoutez une nouvelle colonne à la table de données d’origine pour stocker la valeur de l’école.
- Créez une table de recherche contenant les tranches d’âge pour les niveaux scolaires.
- Parcourez chaque ligne du tableau de données d'origine :
- Obtenez le numéro de ligne dans la table de recherche où l’âge se situe dans la tranche d’âge.
- Affectez la valeur de l’école de la ligne de la table de recherche à la nouvelle colonne de la table de données d’origine.
Instructions
Dans une session JMP, cliquez sur le menu Fichier et sélectionnez Nouveau ► Script . Copiez le script ci-dessous et collez-le dans la fenêtre de script. Pour exécuter l'exemple de script, cliquez sur le menu Édition et sélectionnez Exécuter le script .
/* Open a sample data table */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Add a column for the assignment */
dt << New Column( "School", Character );
/* Create a lookup table */
lt = New Table( "SchoolLookup",
Add Rows( 3 ),
New Column( "SchoolLevel", Character, Nominal, Set Values( {"Elementary", "Middle", "High"} ) ),
New Column( "Low", Numeric, Continuous, Format( "Best", 12 ), Set Values( [5, 13, 15] ) ),
New Column( "High", Numeric, Continuous, Format( "Best", 12 ), Set Values( [12, 14, 18] ) )
);
/* Loop through each row of the original data table */
For( i = 1, i <= N Rows( dt ), i++,
/* Obtain a matrix contining the row number of the lookup table where the age falls within the range */
ageRange = lt << Get Rows Where(
Column( lt, "Low" )[] <= Column( dt, "age" )[i] & Column( dt, "age" )[i] <= Column( lt, "High" )[]
);
/* Extract the row number from the matrix */
r = ageRange[1];
/* Assign the school value to the original data table */
Column( dt, "School" )[i] = Column( lt, "SchoolLevel" )[r];
);
Documentation complémentaire
Vous trouverez plus d'informations sur le langage de script JMP dans le Guide de script JMP . Vous pouvez accéder au guide à partir de JMP en cliquant sur le menu Aide et en sélectionnant Aide JMP . Dans la table des matières en ligne, choisissez Guide de script .
[Auparavant JMP Note 46535]
alternative1 : utiliser Tables/Update
différence : utilise r= ageRange[Length(agerange)] au lieu de agerange[1]
alternative2 : utiliser Tables/Join
différence : génère une nouvelle table