Comment appliquer un script à des sous-ensembles d'une table de donnéesBonjour,
Dans mon tableau de données, j'ai 6 sous-ensembles de données (identifiés par la colonne X, chaque sous-ensemble étant identifié par une lettre différente : « a », « b », « c », « d », « e » et « f »). Comment puis-je appliquer un script indépendamment à chacun des 6 sous-ensembles et obtenir les 6 résultats dans une seule colonne ?
Merci d'avance pour votre soutien !
Meilleur
Claire
------
Script actuellement appliqué à l'ensemble du tableau de données :
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>Ingénierie de la qualité et des procédés</LINGO-LABEL>
</LINGO-LABS>
Re : Comment appliquer un script sur des sous-ensembles d'une table de donnéesJuste sur la base du script que vous avez ici, j'ajouterais une colonne d'index, créerais des sous-ensembles basés sur les lettres uniques, exécuterais une formule sur chacune d'elles, puis mettrais à jour les données dans la table d'origine
Re : Comment appliquer un script sur des sous-ensembles d'une table de donnéesSalut Jarmo,
Merci pour le conseil!
Je ne suis qu'un débutant en JSL et j'ai maintenant ce script (voir ci-dessous). La colonne de résultat "sumtempj" apparaît dans chaque sous-table de données produite mais il n'y a pas de résultat dans la colonne. Pouvez-vous voir l'erreur?
Meilleur
Claire
Scénario:
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 : Comment appliquer un script sur des sous-ensembles d'une table de donnéesIl pourrait y avoir d'autres façons de le faire, mais comme je ne connais pas vos données, je ne peux vraiment rien suggérer. Voici une solution qui utilise des sous-ensembles qui pourraient fonctionner
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 : Comment appliquer un script sur des sous-ensembles d'une table de donnéesC'est un peu trop avancé pour moi, mais merci pour les contributions ! J'ai réussi à trouver un moyen d'obtenir le résultat sans trop de manipulation manuelle et pour l'instant c'est assez bon.
Meilleur
Claire