Ayuda con una declaración ifHola,
Probablemente me esté perdiendo algo básico aquí. Estoy tratando de cambiar los valores de una columna usando una combinación de otros dos valores de columna. Escribo la siguiente declaración if y los valores de la columna no cambian. ¿Que me estoy perdiendo aqui? Gracias por los consejos y sugerencias.
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;
Tabla de datosScriptingRe: ayuda con una declaración ifPuede usar Para cada fila o Establecer cada valor. A continuación se muestra un ejemplo:
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: ayuda con una declaración if¡Gracias por la respuesta! Como muestran las diversas guías de secuencias de comandos, debería ser lo correcto, pero no funcionó aquí. Supongo que algo andaba mal con la tabla de datos y todo el procesamiento que ya hice en estas variables. Eventualmente, la solución fue concatenar las dos columnas nominales en una y luego recodificar las expresiones que llegué allí a los resultados deseados. Gracias de nuevo.
Re: ayuda con una declaración ifEn su JSL original probablemente (editar: también) desee cambiar
Rile_Calc3 == "center" // compare. the result of the compare (0 or 1) will be the result of the if(), see below
para
Rile_Calc3 = "center" // assign value
JSL si las declaraciones devuelven un valor; podrías escribirlo como
: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 sabe que no hay casos inesperados, puede omitir la cláusula final de lo contrario. Pero la naturaleza de los casos inesperados es aparecer cuando menos se espera.
Si secretos