filtro de datos para loop IIHola,
Tengo una tabla de datos que se actualiza (en el script original a través de la consulta), por ejemplo, cada 5 segundos y se adjuntará a otra tabla. Hasta ahora tan bueno. ¿Cómo puedo obtener que la selección no se borre después de cada iteración?
Names Default To Here(0);
dt0 = New table ("Test",
New Column( "name", Character,"Nominal"),
New Column( "age", numeric, continuous),
New Column("sex", Character,"Nominal"),
New Column("height", numeric, continuous),
New column("weight", numeric, continuous,));
df = dt0 << Data Filter(
Add Filter( Columns( :sex ) )
);
n=0;
e=10;
startwork = Function( {},
dt1=Open( "$sample_data/big class.jmp");
dt0 << Concatenate( current data table(), "Append to First Table");
n+=1;
Close (dt1, nosave);
if(n<E></E>Sería genial si mi selección sea válida para la tabla de datos y el gráfico después de cada iteración hasta que el usuario cambie la sección.
¡Muchas gracias!
Re: filtro de datos para loop IIEn el caso de que implemente el script en un bucle (como la primera pregunta), la selección solo es válida en función de los números de fila. Necesito la selección basada en la selección de la columna. Para eso encontré una posible solución:
Construya un cuadro de lista y use esta selección para la tabla:
Names Default To Here(0);
dt0 = New table ("Test",
New Column( "name", Character,"Nominal"),
New Column( "age", numeric, continuous),
New Column("sex", Character,"Nominal"),
New Column("height", numeric, continuous),
New column("weight", numeric, continuous,));
List={"F","M"};
gb=new window("Choice",
LB1=List Box(List, width(150), maxSelected(5), nlines(1))
);
n=0;
e=10;
startwork = Function( {},
dt1=Open( "$sample_data/big class.jmp");
Choice=LB1 << get selected;
dt0 << Concatenate( current data table(), "Append to First Table");
dt0 << Select Where( Contains( Choice, :sex ) );
n+=1;
Close (dt1, nosave);
if(n<E></E>Muchas gracias por sus respuestas, aprendí comandos muy útiles!
Re: filtro de datos para loop IIAquí hay un enfoque ligeramente diferente. Utiliza el mensaje << Obtener guión del filtro de datos "Probar", y luego realiza una ligera modificación y luego lo aplica a la tabla de datos de Big Class. Todo se desencadena por el controlador de cambio de filtro aplicado al filtro de datos en la tabla de datos de prueba.
Names Default To Here( 0 );
dt1 = Open( "$sample_data/big class.jmp" );
dt0 = New Table( "Test",
New Column( "name", Character, "Nominal" ),
New Column( "age", numeric, continuous ),
New Column( "sex", Character, "Nominal", Values( {"F", "M", "F", "M", "F", "M", "F", "M"} ) ),
New Column( "height", numeric, continuous ),
New Column( "weight", numeric, continuous, )
);
df0 = dt0 << Data Filter( Add Filter( Columns( :sex ), /* variable get where selection df0*/ ) );
f = Function( {a},
dschar = Char( df0 << get script );
Try( df1 << close );
dschar = "df1 = dt1 " || Substr( dschar, 21 );
Eval( Parse( dschar ) );
Try( df1 << close );
);
rs = df0 << Make Filter Change Handler( f );
También es posible que desee explorar la capacidad de subcontratar su tabla de datos principal, o crear una tabla de datos de resumen de su tabla principal, y utilizar la opción, para "Vincular a la tabla original". A continuación, puede colocar un filtro de datos en la tabla de datos resumida o en subconjunto, y replicará automáticamente los cambios en la tabla original.
Re: filtro de datos para loop IIGracias por tu respuesta. Desafortunadamente, no pude obtener la pista de la Ayuda ==> Índice de secuencias de comandos ==> Filtro de datos ..........
He intentado múltiples opciones pero nada funciona.
¿Cómo puedo obtener la cláusula where o el argumento where como una variable de df0 y colocarlo en el df1 como donde argumento?
Encontré la cláusula << get where pero esto es solo un formato de texto ...
Names Default To Here(0);
dt0 = New table ("Test",
New Column( "name", Character,"Nominal"),
New Column( "age", numeric, continuous),
New Column("sex", Character,"Nominal", Values({"F", "M", "F", "M", "F", "M", "F", "M"})),
New Column("height", numeric, continuous),
New column("weight", numeric, continuous,));
df0 = dt0 << Data Filter(
Add Filter( Columns( :sex ),/* variable get where selection df0*/ )
);
dw0 = df0 << get where clause;
dt1=Open( "$sample_data/big class.jmp");
df1 = dt1 << Data Filter(
Add Filter( Columns( :sex) /* set where selection from df0*/ )Re: filtro de datos para loop IISugiero que antes de la actualización, que recupere la Cláusula Where del Filtro de datos, que luego haga la actualización y que vuelva a aplicar la Cláusula Where recuperada.
Ver
Ayuda ==> Índice de secuencias de comandos ==> Filtro de datos ..........
para detalles y ejemplo