Utiliser des boucles dans une formuleSalut,
Est-il possible d'utiliser une boucle dans la formule de colonne ? Par exemple, j'ai une colonne nommée TEST, et j'écris pour (i=1, i<5, i++, :TEST=char(i)) ... mais je n'obtiens rien, cette colonne est vide après avoir appuyé sur appliquer/OK. À partir de la boucle, j'espère que chaque ligne de la colonne sera égale à 4.
Désolé de poser une question aussi simple, mais je n'ai pas pu trouver la réponse en parcourant rapidement l'annexe A du manuel "Utilisation de JMP".
Merci,
Ahmad
Re : Utiliser des boucles dans une formuleJe pense que votre compréhension actuelle de l'utilisation des formules est erronée.Je suis particulièrement confus quant aux résultats attendus pour la formule
For( i=0, i<=5, i++, :Strain )
Par défaut, les formules sont exécutées une fois pour chaque ligne.Par conséquent, la plupart du temps, une boucle For() ne sera pas utilisée.
J'ai joint un tableau de données avec 4 formules différentes appliquées.J'espère que si vous examinez les différentes formules, cela vous aidera à ajuster votre compréhension du fonctionnement des formules.
Re : Utiliser des boucles dans une formuleMerci beaucoup pour votre aide/réponse.
En ce qui concerne la simple boucle for que j'avais l'habitude d'essayer de remplir les cinq premières lignes de la colonne "% elongation", je suis curieux de savoir pourquoi la colonne reste inchangée/vide. Suis-je complètement à côté de la vérité dans la façon dont j'ai utilisé la formule et/ou défini les arguments ?
Au tout début de l’apprentissage de JMP et JSL, j’essayais d’apprendre de mes erreurs.
Merci encore pour votre aide!
Re : Utiliser des boucles dans une formuleVoici une formule pour la création de %allongement.Ce n'est pas une formule très efficace, mais elle trouvera la valeur quel que soit l'ordre des données.
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
:Strain[theRow];
Si les données sont triées par formulation et bande, la formule plus efficace ci-dessous peut être utilisée.
If( Row() == 1 | :Formulation != Lag( :Formulation ) | :Strip != Lag( :Strip ),
curForm = :Formulation;
curStrip = :Strip;
theRow = (Current Data Table() << get rows where(
:Formulation == curForm & :Strip == curStrip & :Stress == :Tensile Strength
))[1];
);
:Strain[theRow];
Re : Utiliser des boucles dans une formuleMerci beaucoup pour votre réponse.
Le dernier problème que j'essaie de résoudre est le suivant : j'ai des données contrainte-déformation pour plusieurs bandelettes de test pour plusieurs formulations ( veuillez consulter le fichier de données JMP ci-joint ). Le tableau ci-joint contient 4 "groupes" formulation + bande différents, c'est-à-dire) FormA/strip1, FormA/strip2, FormB/strip1, FormB/strip2... Pour chaque groupe, je dois identifier 1) la contrainte maximale (résistance à la traction) et 2) la déformation associée à la contrainte maximale. Pour identifier la contrainte maximale, j'ai créé une colonne "Résistance à la traction" et utilisé simplement "Col Max()" dans l'éditeur de formule (voir image ci-dessous)

Maintenant, je cherche à remplir la colonne "% allongement" avec les valeurs de déformation associées à la contrainte maximale (résistance à la traction) pour chaque groupe, et c'est là que réside mon problème. .Plutôt que de parcourir le tableau pour identifier manuellement ces valeurs de déformation et remplir la colonne "% d'allongement", je me demande s'il existe un moyen d'y parvenir avec une formule de colonne (ou un script JSL) .
Je pensais que cela pourrait impliquer une combinaison de boucles et/ou de fonctions conditionnelles.
Au départ, j'ai expérimenté en parcourant la colonne "Contrainte" avec une boucle for, pour vérifier si Contrainte=Résistance à la traction dans une ligne donnée (si oui, remplissez la colonne "% d'allongement" avec la valeur de déformation associée). Veuillez consulter le fichier JPG ci-joint « stress-strain data_jmp community help_iteration tent » pour la formule/tentative de colonne initiale. La colonne est restée inchangée/vide.
J'ai ensuite essayé de simplement remplir les 5 premières lignes de la colonne "% allongement" avec les valeurs de déformation dans les lignes données (veuillez consulter le fichier JPG ci-joint "stress-strain data_jmp community help_for loop"). La colonne est restée vide, et c'est ce qui a motivé mon message initial. Je suppose qu'il y a des erreurs clés dans la façon dont j'utilise les fonctions.
**De plus, je reconnais que ma formule initiale est bien trop simpliste pour mon objectif final.
Toutes mes excuses pour le long message et si je n'ai pas été clair sur quoi que ce soit. Je serais heureux de fournir des éclaircissements. Je suis assez nouveau sur JMP, donc tout conseil/aide à ce sujet serait grandement apprécié. Merci d'avance.
Re : Utiliser des boucles dans une formuleQuel est votre problème spécifique.Pouvez-vous indiquer quelle formule vous utilisez actuellement et qui ne fonctionne pas pour vous ?
Re : Utiliser des boucles dans une formuleBonjour, j'essaie d'utiliser des boucles dans la formule de colonne pour la première fois et il me semble que je rencontre votre problème d'origine.
Pourriez-vous préciser comment vous avez résolu le problème et ce que vous entendiez par mission qui devrait être en dehors de la boucle ?
Merci!
Re : Utiliser des boucles dans une formulePas besoin de répondre... j'ai découvert le problème, merci ! L'affectation doit être en dehors de la boucle.