Aiutati con un'istruzione ifCIAO,
Probabilmente mi manca qualcosa di fondamentale qui. Sto cercando di modificare i valori di una colonna utilizzando una combinazione di altri due valori di colonna. Digito la seguente istruzione if e i valori della colonna non cambiano. Cosa mi manca qui? Grazie per eventuali suggerimenti e consigli.
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;
Ricerche sui consumatori e sul mercatoCombinazione e pulizia dei datiRi: Aiuto con un'istruzione ifHa funzionato davvero. Ho apportato una piccola modifica utilizzando @jthi e ho apportato piccole modifiche @Craige_Hales il codice. Il formato finale che ha funzionato per me è stato questo:
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"
));
Ri: Aiuto con un'istruzione ifNel tuo JSL originale probabilmente (modifica: anche) vuoi cambiare
Rile_Calc3 == "center" // compare. the result of the compare (0 or 1) will be the result of the if(), see below
A
Rile_Calc3 = "center" // assign value
JSL if le istruzioni restituiscono un valore; potresti scriverlo come
: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.
);
Se sai che non ci sono casi imprevisti, puoi omettere la clausola finale altrimenti. Ma la natura dei casi inaspettati è quella di presentarsi quando meno te lo aspetti.
Se segreti
Ri: Aiuto con un'istruzione ifGrazie per la risposta! Come mostrano le varie guide allo scripting, dovrebbe essere la cosa giusta, ma qui non ha funzionato. Presumo che ci fosse qualcosa di sbagliato nella tabella dei dati e in tutta l'elaborazione che ho già eseguito su queste variabili. Alla fine, la soluzione alternativa era concatenare le due colonne nominali in una e quindi ricodificare le espressioni ottenute con i risultati desiderati. Grazie ancora.
Ri: Aiuto con un'istruzione ifÈ possibile utilizzare Per ogni riga o Imposta ciascun valore. Di seguito è riportato un esempio:
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
);
);