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 vos 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;
Études de consommation et de marchéMélange et nettoyage des donnéesRe : Aide avec une instruction ifCela a réellement fonctionné. J'ai fait une petite modification en utilisant @jthi et j'ai fait de petits changements dans @Craige_Hales le code. Le format final qui a fonctionné pour moi était le suivant :
dt = Data Table( "20210812Miflezet_CAPCMP.jmp" );
For Each Row(
If(
:just_dec_rec == "reject" & :RILE_Rec == "center", :RILE4="center",
:just_dec_rec == "accept" & :RILE_Rec == "center", :RILE4= "center",
:just_dec_rec == "reject" & :RILE_Rec == "left", :RILE4= "right",
:just_dec_rec == "accept" & :RILE_Rec == "left", :RILE4="left",
:just_dec_rec == "reject" & :RILE_Rec == "right", :RILE4="left",
:just_dec_rec == "accept" & :RILE_Rec == "right", :RILE4="right"
));
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 clause finale « autrement ». Mais la nature des cas inattendus est d’apparaître au moment où on s’y attend le moins.
Si les secrets
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à effectué sur ces variables. Finalement, la solution de contournement consistait à concaténer les deux colonnes nominales en une seule, puis à recoder les expressions que j'avais obtenues pour obtenir les résultats souhaités. Merci encore.
Re : Aide avec une instruction ifVous pouvez utiliser soit Pour chaque ligne, soit Définir chaque valeur. 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
);
);