Script JSL para verificar si el valor de una sola celda está en una listaDada una tabla de datos con una columna de valores limitados (ver ejemplos a continuación), me gustaría escribir un script que mire la primera celda y verifique si está en una lista de valores. El propósito sería usar el primer valor como condición para una instrucción IF que luego apuntaría a un determinado conjunto de tareas.
¿Alguien tiene una idea de cómo hacer esto?
gracias
p.ej
o
Re: Script JSL para verificar si el valor de una sola celda está en una listaGracias @pmroz y @txnelson para la ayuda de secuencias de comandos. Para ser más específico, lo que estoy buscando es usar la verificación de si el valor de la primera celda está o no en la lista como condiciones para una declaración if que impulsará algunas otras acciones. Creo que sus dos scripts llenan otra matriz, pero no son un estricto T/F. Voy a tratar de usarlos y le haré saber lo que sucede.
Re: Script JSL para verificar si el valor de una sola celda está en una listaEsto podría ser útil:
dt = New Table( "test", Add Rows( 5 ),
New Column( "CAT", Character, "Nominal",
Set Values( {"A", "B", "C", "D", "E"} ) ),
New Column( "time", Numeric, "Continuous", Format( "Best", 12 ),
Set Values( [1, 2, 3, 4, 5] ) )
);
look_for_list = {"B", "D"};
found_rows = dt << get rows where(contains(look_for_list, as column(dt, "CAT")));
print(found_rows);
[2, 4]
Re: Script JSL para verificar si el valor de una sola celda está en una listaNo estoy seguro exactamente de lo que está pidiendo, sin embargo, a continuación hay una secuencia de comandos que podría indicarle la dirección correcta
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/big class.jmp" );
theList = {59, 66};
For( i = 1, i <= N Rows( dt ), i++,
If( N Rows( Loc( theList, :height[i] ) ) > 0,
Show( i )
)
);Re: Script JSL para comprobar si un solo valor de celda está en una listaEncontré este hilo buscando algo similar para cerrar tablas de datos abiertas mientras probaba código. Usé el código simple que mencionaste arriba. Pensé en publicarlo por si le resulta útil a alguien que se encuentre con este hilo:
// list of table names that I want to make sure are closed before running the script
tname = { "TABLE1", "TABLE2", "TABLE3", "TABLE4" };
// loop to see if open tables match the name in the list above, then close them
// need to restart the i counter to i = 0 because it seems closing a table changes the 'i' number associated with the table
For( i = 1, i <= N Table(), i++,
If( N Rows (Loc( tname, Data Table(i) << Get Name ) ) > 0,
Close(Data Table(i), no save);
i = 0;
)
);