Aide avec une instruction ifSalut,
Il me manque probablement quelque chose de fondamental ici. J'essaie de modifier les valeurs d'une colonne en utilisant une combinaison de deux autres valeurs de colonne. Je tape l'instruction if suivante et les valeurs des colonnes ne changent pas. Qu'est-ce que j'oublie ici? Merci pour tous les conseils et astuces.
Names Default To Here( 1 );
dt = Data Table( "20210811Miflezet_CAPCMP.jmp" );
dt << Begin Data Update;
If( :justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "center"
,
:Rile_Calc3 == "center"
,
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "center"
,
:Rile_Calc3 == "center"
,
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "left"
,
:Rile_Calc3 == "right"
,
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "left"
,
:Rile_Calc3 == "left"
,
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "right"
,
:Rile_Calc3 == "left"
,
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "right"
,
:Rile_Calc3 == "right"
);
dt << End Data Update;
Tableau de donnéesScriptRe: Aide avec une instruction ifVous pouvez utiliser For Each Row ou Set Each Value. Ci-dessous un exemple :
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For Each Row(
If(:sex == "F",
:age = .
);
);
dt:weight << Set Each Value(
If(:sex == "M",
.,
:height
);
);Re: Aide avec une instruction ifMerci d'avoir répondu! Comme le montrent les différents guides de script, cela devrait être la bonne chose, mais cela n'a pas fonctionné ici. Je suppose que quelque chose n'allait pas avec la table de données et tout le traitement que j'ai déjà fait sur ces variables. Finalement, la solution de contournement consistait à concaténer les deux colonnes nominales en une seule, puis à recoder les expressions que j'y ai obtenues pour obtenir les résultats souhaités. Merci encore.
Re: Aide avec une instruction ifDans votre JSL d'origine, vous souhaitez probablement (modifier : également) modifier
Rile_Calc3 == "center" // compare. the result of the compare (0 or 1) will be the result of the if(), see below
à
Rile_Calc3 = "center" // assign value
JSL si les instructions renvoient une valeur ; tu pourrais l'écrire comme
:Rile_Calc3 = If(
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "center", "center",
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "center", "center",
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "left", "right",
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "left", "left",
:justice_decision_REC_RILE2 == "reject" & :RILE_Calc2a == "right", "left",
:justice_decision_REC_RILE2 == "accept" & :RILE_Calc2a == "right", "right",
:Rile_Calc3 // or "Unknown" ? depends how you want to handle the unexpected case.
);
Si vous savez qu'il n'y a pas de cas inattendus, vous pouvez omettre la dernière clause contraire. Mais la nature des cas inattendus est de se manifester quand on s'y attend le moins.
Si secrets