Re : Comment corriger la séquence/l'ordre dans une colonne avec une référence standard et si elle ne suit pas, écrivez-la avec certaines règles.Que veut dire "chauffer" ?
Éditer:
Je viens de décider que chauffer signifie que la ligne actuelle a la valeur Heat et que la précédente était Heat.
Names Default To Here(1);
dt = Open("$DOWNLOADS/Sample_Data2.jmp");
dt << New Column("A", Character, Nominal, << Set Each Value(
As Constant(
priorities = {"Initialization", "Ramp", "Heat", "Ramp_2", "Ramp_Down", "Final"};
);
If(Row() == Col Min(Row(), :Device_ID),
priority_idx = Contains(priorities, :Device_State_Final);
,
If(!Contains(priorities, :Device_State_Final),
priority_idx;
,
If(:Device_State_Final == "Heat" & Lag(:Device_State_Final) == "Ramp",
priority_idx = Contains(priorities, "Heat");
, Contains(priorities, :Device_State_Final) >= priority_idx,
priority_idx = Contains(priorities, :Device_State_Final);
);
);
);
priorities[priority_idx];
));

Re : Comment corriger la séquence/l'ordre dans une colonne avec une référence standard et si elle ne suit pas, écrivez-la avec certaines règles.Merci Jarmo,
Cela semble bien fonctionner. Je vais l'implémenter et le tester sur un large ensemble de données.
Merci encore.
Re : Comment corriger la séquence/l'ordre dans une colonne avec une référence standard et si elle ne suit pas, écrivez-la avec certaines règles.Chers tous, Je vous souhaite une très bonne année.
@jthi et le reste des membres de la communauté - je suis encore resté coincé !!
La formule/le script que vous avez fourni (4e colonne - "Formule_3" ) a bien fonctionné pour 80 % des données, mais a échoué là où l'ordre apparu (mauvais) est plus élevé dans la séquence. Dans l'exemple donné - "Settling_Time" est plus élevé dans l'ordre de la séquence mais il est apparu au mauvais endroit (entre "Main_Ramp" aux lignes 4 et 6 ; 10 et 12) et maintenant la logique actuelle ne permet pas de modifier cela. Je pensais, je peux utiliser une autre boucle comme -
Si (
Retard(:Etat_actuel) == Retard(:Etat_actuel, -1) & :Etat_actuel != Retard(:Etat_actuel), :Etat_actuel = Retard(:Etat_actuel)
);
Mais il échoue également en raison de l'ordre de séquence dans les lignes numéro 5, 6 et 7. Ma colonne requise est la 3e colonne de l'ensemble de données joint, nommée " Colonne requise".
Une aide et/ou une suggestion ?
Merci

Comment corriger la séquence/l'ordre dans une colonne avec une référence standard et si elle ne suit pas, écrivez-la avec certaines règles.
Chers tous,
J'ai récemment posé une question sur la manière de remplir les valeurs manquantes dans une colonne et j'ai obtenu/implémenté la solution. Mais je suis de nouveau bloqué. Ce problème est la continuation du même (problème de 2e étape.)
Référence du problème précédent -
https://community.jmp.com/t5/Discussions/How-to-fill-replace-text-between-two-cells-based-on-specific/mp/581800#M78854
Je souhaite générer une colonne "Device_State_Final_Corrected" dans les données jointes, basée sur "Device_ID", "Device_State_Final" et les règles suivantes -
-------------------------------------------------- -------------------------------------
Pour chaque appareil, bien définir l'ordre est -
"Initialisation - Rampe - Chaleur - Rampe_2 - Rampe_Descente -Final"
Deux règles à suivre -
Règle 1 . Si un état supérieur est apparu une fois (par exemple, "Ramp_2"), l'état inférieur (par exemple, "Initillization") ne peut pas apparaître. S'il apparaît, il sera remplacé par l'état supérieur précédemment présent (par "Ramp_2") - voir numéro de ligne - 12. Une exception se produit pour l'état de l'appareil "Chauffage"
Règle 2. Maintenant, si quelque part si l'appareil chauffe, il doit répéter la séquence après "Heat" et suivre la règle 1.
"Initialisation - Rampe - Chaleur - Rampe_2 - Rampe_Down -Chauffage - Rampe_2 - Rampe_Down - Finale" -- Voir le numéro de ligne 24, 25, 26.

-------------------------------------------------- -------------------------------------
De l'aide,
Merci - HSS
Études de consommation et de marché