Otro desafío de sintaxis JMP ..........: 
Estoy tratando de formatear correctamente una declaración IF y no puedo hacer que funcione después de innumerables iteraciones. Agradezco cualquier ayuda!
Tengo una tabla de datos con una columna llamada "Descripción del paso del proceso" ..... carácter de tipo de datos
Tengo otra columna en la tabla llamada "Fallas del módulo" que es de tipo de datos numérico / continuo; Lo creo con éxito usando el siguiente segmento de script
Quiero establecer el valor de la celda en la columna "Fallos del módulo" en función del valor en la celda "Descripción del paso del proceso", de la siguiente manera:
Descripción del paso del proceso .................. Fallas del módulo
Control de calidad saliente .................... 0 0
La unidad falla ............................................ 1
Tengo los siguientes comandos en mi script; por lo que puedo decir, todo funciona correctamente, excepto la declaración IF en sí
dt << Nueva columna ("Fallas del módulo");
columna ("Fallas del módulo") << tipo de datos (numérico, formato ("Dec. fija", 1,0));
columna ("Fallas del módulo") << Tipo de modelado (continuo);
If (Descripción del paso del proceso == "Fallos de la unidad", ("Fallos del módulo" = 1), ("Fallos del módulo" = 0));
Podría tener algo que ver con las citas, ya que siempre me confundo con las reglas de comillas simples y dobles, pero probé tantas permutaciones y nada parece funcionar
Gracias de antemano
ScriptingRe: Otro desafío de sintaxis JMP ..........: 
¿Hay algún mensaje en el registro?
¿Puedes adjuntar una muestra de tus datos?
Re: Otro desafío de sintaxis JMP ..........: 
¡¡Muchas gracias!! De las opciones que presentó, la implementación de la fórmula es la más intuitiva para mí; Pensé que tal vez el "si" necesitaba ser implementado como una fórmula, pero no estaba seguro; Lo reemplacé por un segmento de script existente con el siguiente. Desafortunadamente, todavía solo devuelve un "." en la columna de datos Fallas del módulo, por lo que algo sigue sin estar bien. Se crea la nueva columna y el tipo de datos es correcto, pero la "lógica if" no parece implementarse.
Gracias por cualquier consejo adicional. También podría proporcionar más información si es necesario.
dt << New Column( "Module Failures",
data type( Numeric ),
Format( "Fixed Dec", 1, 0 ),
Modeling Type( Continuous ),
Formula( If( :Proceess Step Description == "Unit fails", 1, 0 ) )
);Re: Otro desafío de sintaxis JMP ..........: 
¿Podría ser tan simple como un error tipográfico? Cambiar "Continuar mi ss "a" Proceso "
Re: Otro desafío de sintaxis JMP ..........: 
Sí, así de simple! Funciona ahora; ¡muchas gracias!
Re: Otro desafío de sintaxis JMP ..........: 
El problema que tiene es que no está explorando las referencias de columna correctamente. Cuando hace referencia a una columna en JSL, el nombre de la columna es seguido por un ":" para indicar que se trata de una referencia de columna. Si bien puede usar la función Columna () en código abierto para hacer referencia a una columna, normalmente se usa cuando se hace referencia a una columna a través de una variable de memoria
myColumn = "Process Step Description";
column( myColumn ) << ……..
A continuación hay 3 formas diferentes de lograr lo que necesita. Le sugiero que estudie el código a continuación y lea la Guía de secuencias de comandos para obtener una comprensión completa sobre el alcance de las columnas y las variables de memoria
Names Default To Here( 1 );
dt = New Table( "Example",
Add Rows( 10 ),
New Column( "Proceess Step Description",
Character,
"Nominal",
Set Values(
{"Unit Fails", "Outgoing Quality Check", "Unit Fails", "Unit Fails",
"Outgoing Quality Check", "Outgoing Quality Check", "Unit Fails",
"Outgoing Quality Check", "Unit Fails", "Outgoing Quality Check"}
)
)
);
dt << New Column( "Module Failures" );
:Module Failures <<
data type( Numeric, Format( "Fixed Dec", 1, 0 ) );
:Module Failures << Modeling Type( Continuous );
For Each Row(
If( :Proceess Step Description == "Unit Fails",
:Module Failures = 1,
:Module Failures = 0
)
);
// Or you can define your new column as a formula column
dt << New Column( "Module Failures 2",
data type( Numeric ),
Format( "Fixed Dec", 1, 0 ),
Modeling Type( Continuous ),
Formula(
If( :Proceess Step Description == "Unit Fails",
1,
0
)
)
);
// or If the reference variable changes you may want to
// use the As Column()
zippy="Process Step Description";
dt << New Column( "Module Failures 3",
data type( Numeric ),
Format( "Fixed Dec", 1, 0 ),
Modeling Type( Continuous ),
Formula(
If( as column(dt, zippy) == "Unit Fails",
1,
0
)
)
);
Re: Otro desafío de sintaxis JMP ..........: 
Por cierto, no necesita la función If () para su propósito. La función Equal () (o el operador == en este caso) devuelve 1 si los dos argumentos tienen el mismo valor o 0 si no lo son. Entonces este script es solo un poco más conciso.
dt << New Column( "Module Failures",
data type( Numeric ),
Format( "Fixed Dec", 1, 0 ),
Modeling Type( Continuous ),
Formula( :Process Step Description == "Unit fails" )
);