Come applicare uno script ai sottoinsiemi di una tabella datiCiao,
Nella mia tabella dati ho 6 sottoinsiemi di dati (distinti l'uno dall'altro dalla Colonna X, dove ogni sottoinsieme ha una lettera diversa "a", "b", "c", "d", "e" e "f"). Come posso applicare uno script a tutti e 6 i sottoinsiemi in modo indipendente e ottenere i 6 risultati del mio script in un'unica colonna?
Grazie in anticipo per il vostro supporto!
Migliore
Claire
------
Script attualmente applicato all'intera tabella dati:
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>Ingegneria della qualità e dei processi</LINGO-LABEL>
</LINGO-LABS>
Ri: Come applicare uno script su sottoinsiemi di un datatableBasandomi solo sullo script che hai qui, aggiungerei la colonna dell'indice, creerei sottoinsiemi basati sulle lettere univoche, eseguirei la formula su ciascuno di essi e quindi aggiornerei i dati alla tabella originale
Ri: Come applicare uno script su sottoinsiemi di un datatableCiao Jarmo,
Grazie per il consiglio!
Sono solo un principiante in JSL e ora ho questo script (vedi sotto). La colonna dei risultati "sumtempj" appare in ogni datatable secondario prodotto ma non ci sono risultati nella colonna. Riesci a vedere l'errore?
Migliore
Chiara
Sceneggiatura:
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>
Ri: Come applicare uno script su sottoinsiemi di un datatablePotrebbero esserci altri modi per farlo, ma poiché non conosco i tuoi dati non posso davvero suggerire nulla. Ecco una soluzione che utilizza sottoinsiemi che potrebbero funzionare
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"); Ri: Come applicare uno script su sottoinsiemi di un datatableQuesto è un po' troppo avanzato per me, ma grazie per gli input! Sono riuscito a trovare un modo per ottenere il risultato senza troppa manipolazione manuale e per ora è abbastanza buono.
Migliore
Chiara