El filtro de datos en el script JSL se ejecuta con lentitudEstoy intentando crear un script JSL que utilice el filtro de datos y seleccione unas 180 pruebas de interés en la columna "ITEM_NAME" para crear una nueva tabla. Al usar el filtro de datos y ejecutarlo manualmente, no se producen retrasos. Sin embargo, al intentar automatizar el proceso, tarda unos 15 minutos en crear la nueva tabla. ¿Qué puedo hacer para que funcione de forma más eficiente?
Open( "$DOCUMENTS/test.jmp" );
ref10 = Data Table( "ABC" ) << Select Where(
:ITEM_NAME == "test1" |
:ITEM_NAME == "test2" |
:ITEM_NAME =="test3" |
:ITEM_NAME ==
...
"test180"
) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Automatización y scriptingRe: El filtro de datos en el script JSL se ejecuta lentamentePrueba esto
Open( "$DOCUMENTS/test.jmp" );
items={"test1" "test2""test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(ITEMS) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Re: El filtro de datos en el script JSL se ejecuta lentamenteGracias, Jim. Por alguna razón me aparece el error (probablemente relacionado con la sintaxis).
Re: El filtro de datos en el script JSL se ejecuta lentamenteParece que ahora va más rápido y tardó unos 3-4 minutos en completarse, pero no tanto si lo hacía manualmente. Tuve que hacer un pequeño cambio en el código para evitar el error:
Open( "$DOCUMENTS/test.jmp" );
items={"test1", "test2", "test3"..........};
ref10 = Data Table( "ABC" ) << Select Where(
contains(items, ITEM_NAME) ) << Data View;
Data Table( ref10 ) << Save(
"$DOCUMENTS/filtered.jmp"
);
Re: El filtro de datos en el script JSL se ejecuta lentamenteMi error....era tarde en la noche....
Re: El filtro de datos en el script JSL se ejecuta lentamenteEs un poco difícil entender por qué su script sería tan lento sin ver/comprender sus datos (no debería ser así).
Podrías intentar usar "Obtener filas, dónde" y "Subconjunto" en lugar de seleccionar esas filas. En este ejemplo, intenté replicar la "Vista de datos" usando un subconjunto vinculado y un nombre de tabla de salida sin título.
Names Default To Here(1);
dt = open("$SAMPLE_DATA/Big Class.jmp");
items = {12, 13, 14, 15};
rows_of_interest = dt << get rows where(Contains(items, :age));
dt_subset = dt << Subset(Rows(rows_of_interest), Selected Columns(0), Link to original data table(1), Output Table("Untitled"));
Re: El filtro de datos en el script JSL se ejecuta lentamenteGracias, Jarmo. Tu solución redujo el tiempo de procesamiento a aproximadamente 1:35 segundos.
La tabla JMP que utilizo tiene 13 columnas y 13127825 datos. El archivo de salida contiene 1274416 datos.
Re: El filtro de datos en el script JSL se ejecuta lentamenteProbablemente se puedan hacer optimizaciones, pero si esa velocidad es suficiente para tu aplicación, no me preocuparía por ellas.