Hola,
Estoy trabajando con datos que se ven así. Quiero crear una declaración IF en una nueva columna, diciendo que si DOW (día de la semana) es lunes, debe ingresar el valor en la columna "T-28", si es martes, luego ingrese el valor en "T-12 " etcétera etcétera. ¿Cómo hago esto?
SI(DOW=="Lun",???)

Para hacer la fórmula de la columna, puede usar el si declaración o la fósforo declaración; la sintaxis de coincidencia es un poco más fácil de leer:
New Table( "example",
New Column( "DOW", character, Set Values( {"Mon", "Tue", "Wed", "Thu"} ) ),
New Column( "T-28", Set Values( [38, 35, 26, 28] ) ),
New Column( "T-21", Set Values( [45, 47, 43, 48] ) ),
New Column( "T-14", Set Values( [60, 65, 54, 65] ) ),
New Column( "T-13", Set Values( [63, 68, 62, 70] ) ),
New Column( "T-12", Set Values( [65, 78, 72, 72] ) ),
New Column( "T-11", Set Values( [70, 82, 72, 72] ) ),
New Column( "Conditional",
Formula(
Match( :DOW,
"Mon", :Name( "T-28" ),
"Tue", :Name( "T-21" ),
"Wed", :Name( "T-14" ),
"Thu", :Name( "T-13" ),
-9999 // else...use . for missing value
)
)
)
)
Debido a que los nombres de las columnas contienen guiones (restar), necesitan el envoltorio name().
Con una sentencia if:
New Table( "example",
New Column( "DOW", character, Set Values( {"Mon", "Tue", "Wed", "Thu"} ) ),
New Column( "T-28", Set Values( [38, 35, 26, 28] ) ),
New Column( "T-21", Set Values( [45, 47, 43, 48] ) ),
New Column( "T-14", Set Values( [60, 65, 54, 65] ) ),
New Column( "T-13", Set Values( [63, 68, 62, 70] ) ),
New Column( "T-12", Set Values( [65, 78, 72, 72] ) ),
New Column( "T-11", Set Values( [70, 82, 72, 72] ) ),
New Column( "Conditional",
Formula(
if(
:DOW=="Mon", :Name( "T-28" ),
:DOW=="Tue", :Name( "T-21" ),
:DOW=="Wed", :Name( "T-14" ),
:DOW=="Thu", :Name( "T-13" ),
-9999 // else...use . for missing value
)
)
)
)
The else value handles unknown day namesThe else value handles unknown day namesEl valor else maneja nombres de días desconocidos
JMP realmente preferiría usar . para un valor faltante en lugar de -9999; Lo usé para esta demostración para que el efecto fuera claro.
También puede usar el Editor de fórmulas en lugar de JSL; haga clic en + junto a la columna Condicional en el panel izquierdo de la tabla de datos (arriba) para ver el editor de fórmulas (abajo):
The Formula Editor has a list of functionsThe Formula Editor has a list of functionsEl Editor de fórmulas tiene una lista de funciones.
si los secretos entrada en el blog
Es valioso entender múltiples funciones. Me gusta usar el poder de las listas y prefiero no usar funciones en mis tablas, a menos que adjunte un script para establecer los valores de una columna.
Names Default To Here( 1 );
dt = New Table("example",
New Column("DOW", character, values({"Mon", "Tue", "Wed", "Thu" }) ),
NewColumn("T-28", numeric, values({38,35,26,28})),
NewColumn("T-21", numeric, values({45, 47, 43, 48})),
NewColumn("T-14", numeric, values({60, 65, 54, 65})),
NewColumn("T-13", numeric, values({63, 68, 62, 70})),
NewColumn("T-12", numeric, values({65, 78,72,72})),
NewColumn("T-11", numeric, values({70,82,72,72}))
);
dt << newColumn("Conditional", numeric);
dowlist = {"Mon", "Tue", "Wed", "Thu", "Fri", "Sat"};
clist = {"T-28", "T-21", "T-14", "T-13", "T-12", "T-11"};
dt:Conditional << set each value( Column(dt,clist[Contains(dowlist, :DOW)])[] ) ; 
@anjana ,
Te aconsejo que mires aquí. Este es un recurso muy útil para comprender cómo usar diferentes funciones en JMP

Aquí hay un ejemplo, que dice que si x es el valor que está tratando de asignar a una de las columnas, entonces si el valor en la columna DOW = "Mon", asigne el valor de x a la columna "T-28", de lo contrario, asígnelo a la columna "T-12"
:Name("T-28") = x ; <BR /> , <BR /> // else <BR /> :Name(T-12) = x; <BR /> ); If(:DOW == "Mon",
// then <BR />