Cómo aplicar un script en subconjuntos de una tabla de datosHola,
En mi tabla de datos tengo 6 subconjuntos de datos (que se distinguen entre sí por la columna X, donde cada subconjunto tiene una letra diferente: "a", "b", "c", "d", "e" y "f"). ¿Cómo puedo aplicar un script a los 6 subconjuntos de forma independiente y obtener los 6 resultados en una sola columna?
¡Gracias de antemano por su apoyo!
Mejor
Claire
------
Script aplicado actualmente a toda la tabla de datos:
dt = Current Data Table();
dt << New Column("sumtempj",
Numeric,
Continuous,
<
<SET each="" value=""></SET>
<LINGO-LABS id="lingo-labs-615309" slang="en-US" mode="UPDATE">
<LINGO-LABEL>Ingeniería de Calidad y Procesos</LINGO-LABEL>
</LINGO-LABS>
Re: Cómo aplicar un script en subconjuntos de una tabla de datosSolo según el script que tiene aquí, agregaría una columna de índice, crearía subconjuntos basados en letras únicas, ejecutaría la fórmula en cada uno de ellos y luego actualizaría los datos a la tabla original
Re: Cómo aplicar un script en subconjuntos de una tabla de datosHola Jarmo,
¡Gracias por el consejo!
Solo soy un principiante en JSL y ahora tengo este script (ver más abajo). La columna de resultado "sumtempj" aparece en cada tabla de datos secundaria producida, pero no hay ningún resultado en la columna. ¿Puedes ver el error?
Mejor
claire
Guion:
dt = Current Data Table();
// Perform the subsets
listDT = dt << Subset(
By( :BBI and SteriRun ),
All rows,
Selected columns only( 0 ),
columns( :RoundedTempJ, :BBI and SteriRun, :Sterilisation duration )
);
// Loop across all new data tables and run sumtempj
For( i = 1, i <= N Items( listDT ), i++,
listDT[i] << New Column( "sumtempj",
Numeric,
Continuous,
<<SET each="" value=""></SET>
Re: Cómo aplicar un script en subconjuntos de una tabla de datosPuede haber otras formas de hacer esto, pero como no conozco sus datos, realmente no puedo sugerir nada. Aquí hay una solución que usa subconjuntos que podrían funcionar
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
// add indexing to original data
dt << New Column("IDX", Numeric, Continuous, << Set Each Value(Row()));
// add data column to table as empty
new_col = dt << New Column("sumtempj", Numeric, Continuous);
col_name = new_col << get name;
// get unique groups to uniq_vals
Summarize(dt, uniq_vals_str = by(:age));
// in this case we have to convert uniq_vals back to numeric values BUT it isn't always necessary
// (summarize changes them to strings)
uniq_vals = Transform Each({uniq_val_str}, uniq_vals_str, num(uniq_val_str));
// loop over those unique values
For Each({uniq_val}, uniq_vals,
// create subset
uniq_val_rows = dt << Get Rows Where(:age == uniq_val);
dt_temp = dt << Subset(rows(uniq_val_rows), output table(char(uniq_val)), invisible);
// perform calculation
Column(dt_temp, col_name) << Set Each Value(
Col Max(:height);
);
// update values
dt << Update(
With(dt_temp),
Match Columns(:IDX = :IDX)
);
// wait is here for demo purposes
wait(1);
close(dt_temp, no save);
);
dt << Delete Columns("idx"); Re: Cómo aplicar un script en subconjuntos de una tabla de datosEsto es un poco demasiado avanzado para mí, ¡pero gracias por los aportes! Me las arreglé para encontrar una manera de obtener el resultado sin demasiado manejo manual y por ahora es lo suficientemente bueno.
Mejor
claire