Extrayez le nombre maximum d'une colonne et introduisez-le dans une boucle for dans le même script jslMon script JSL comporte 3 parties. Dans la première partie, je crée une colonne numérique (colonne A) avec 100 lignes remplies d'entiers aléatoires compris entre 50 et 1 000.
Dans la 2ème partie, j'extrais le nombre maximum dans la colonne A et je le stocke dans une variable i.
Dans la 3ème partie, j'utilise i pour créer une boucle for qui crée un certain nombre de nouvelles colonnes dans la même table. Comment puis-je faire ceci?
Il semble que je puisse stocker les données dans i mais la boucle for ne fonctionne pas.
Automatisation et scriptles fenêtresRe : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLVoici un exemple très simple......
Names Default To Here( 1 );
dt =
// Open Data Table: Blood Pressure.jmp
// → Data Table( "Blood Pressure" )
Open( "$SAMPLE_DATA/Blood Pressure.jmp" );
dt << New Column( "A", formula( Random Integer( 50, 1000 ) ) );
i = Col Max( dt:A );
For( k = 1, k <= i, k++,
dt << New Column( "col" || Char( k ) )
);
Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLComme je n'ai pas accès à JMP14, je dois simplement deviner ce qui pourrait être différent.
Peut-être que la boucle n'est pas exécutée du tout -> ajoutez une impression de débogage pour un maximum
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
Show(max);
For(i = 1, i <= max, i++,
Show(i);
);
autre cas de débogage, essayez la boucle sans la table
Names Default To Here(1);
max = 10;
For(i = 1, i <= max, i++,
Show(i);
);
Si JMP14 avait un débogueur (et vous pouvez le faire fonctionner car cela n'est peut-être pas si simple), vous pouvez également essayer cela

Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLQuand je lance ceci, je vois seulement /*; dans le journal.
Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLRecevez-vous un message d'erreur ? Vos colonnes sont en cours de création mais elles ont des valeurs incorrectes ? Vous avez dit que la boucle for ne s'exécute pas, mais qu'elle ne crée plus de colonnes (il s'agit probablement de problèmes distincts). Si vous ajoutez Show(i); à l'intérieur de votre boucle, imprime-t-il correctement ces valeurs pour les consigner ?
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
Show(i);
);Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLCe code a le même problème que mon code. Lorsque j'exécute votre code, il ne crée pas les colonnes qui auraient dû être créées par la boucle for. J'utilise JMP 14 donc une version un peu plus ancienne.
Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLVous n'avez pas publié votre code, il est donc difficile de dire ce qui ne va pas. Voici un exemple de travail
Names Default To Here(1);
dt = New Table("",
Add Rows(100),
New Column("ColumnA", Numeric, Continuous, Formula(Random Integer(50, 1000)))
);
max = Col Max(Column(dt, "ColumnA"));
For(i = 1, i <= max, i++,
dt << New Column(Char(i), Numeric, Continuous, Set Each Value(i));
);Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLVoici l'extraction de la valeur maximale de la colonne A.
X = Eval(Col Max(:Nom("Colonne A")));
Puis quand j'utilise ça comme, pour (i=1, i<=X ...
Cette boucle for ne s'exécute pas. J'ai vérifié que X rapporte le bon numéro.
Re : Extraire le nombre maximum d'une colonne et le transmettre à une boucle for dans le même script JSLPourriez-vous publier ce que vous avez essayé ?