Lorsque j'exécute le script ci-dessous dans JMP 10, je reçois un message d'erreur indiquant - l'argument doit être une matrice {1} dans l'accès ou l'évaluation de 'Loc Max' , Bad Argument ...
On dirait que l'indexation des tables de données est une fonctionnalité de JMP13. Quelle serait la solution de contournement dans JMP10 ?
dt = Nouveau tableau( "Sans titre",
Nouvelle colonne( "a", Numérique, Définir les valeurs( [1, 33, 1] ) ),
Nouvelle colonne( "b", Numérique, Définir les valeurs( [2, 2, 2] ) ),
Nouvelle colonne( "c", Numérique, Définir les valeurs( [333, 1, 0] ) ),
Nouvelle colonne( "maxval", numérique ),
Nouvelle colonne( "maxcol", Numérique )
);
colnames = dt << getcolumnnames;
Pour chaque ligne(
r = Ligne();
// 1 :: 3 signifie les colonnes 1 à 3. {a,b,c} fonctionnerait également.
emplacement = Loc Max( dt[ r, 1 :: 3] ); // emplacement de la valeur maximale dans le tableau
maxval = dt[r, emplacement] ;
maxcol = colnames[location] << getname;
);
Merci!
Vous pouvez d'abord obtenir les valeurs sous forme de matrice, puis saisir chaque ligne de la matrice au lieu de la table de données :
dt = New Table( "Untitled",
New Column( "a", Numeric, Set Values( [1, 33, 1] ) ),
New Column( "b", Numeric, Set Values( [2, 2, 2] ) ),
New Column( "c", Numeric, Set Values( [333, 1, 0] ) ),
New Column( "maxval", numeric ),
New Column( "maxcol", Numeric )
);
colnames = dt << getcolumnnames;
values = dt << Get As Matrix;
For Each Row(
r = Row();
// 1::3 means columns 1 through 3. {a,b,c} would also work.
location = Loc Max( values[r, 1 :: 3] ); // location of maximum value in array
maxval = dt[r, location];
maxcol = colnames[location] << getname;
);