Wie wendet man ein Skript auf Teilmengen einer Datentabelle an?Hallo,
Meine Datentabelle enthält 6 Datenteilmengen (unterschieden durch Spalte X, wobei jede Teilmenge einen anderen Buchstaben hat: „a“, „b“, „c“, „d“, „e“ und „f“). Wie kann ich ein Skript auf alle 6 Teilmengen unabhängig voneinander anwenden und die 6 Ergebnisse des Skripts in einer Spalte erhalten?
Vielen Dank im Voraus für Ihre Unterstützung!
Am besten
Claire
------
Das Skript wird aktuell auf die gesamte Datentabelle angewendet:
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>Qualitäts- und Prozessentwicklung</LINGO-LABEL>
</LINGO-LABS>
Betreff: Wie man ein Skript auf Teilmengen einer Datentabelle anwendetNur basierend auf dem Skript, das Sie hier haben, würde ich eine Indexspalte hinzufügen, Teilmengen basierend auf den eindeutigen Buchstaben erstellen, eine Formel für jede dieser Buchstaben ausführen und dann die Daten wieder in die ursprüngliche Tabelle aktualisieren
Betreff: Wie man ein Skript auf Teilmengen einer Datentabelle anwendetHallo Jarmo,
Danke für den Tipp!
Ich bin nur ein Anfänger in JSL und habe jetzt dieses Skript (siehe unten). Die Ergebnisspalte „sumtempj“ erscheint in jeder erzeugten Unterdatentabelle, aber es gibt kein Ergebnis in der Spalte. Kannst du den Fehler sehen?
Am besten
Claire
Skript:
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>
Betreff: Wie man ein Skript auf Teilmengen einer Datentabelle anwendetEs könnte andere Möglichkeiten geben, dies zu tun, aber da ich Ihre Daten nicht kenne, kann ich nicht wirklich etwas vorschlagen. Hier ist eine Lösung, die Teilmengen verwendet, die funktionieren könnten
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"); Betreff: Wie man ein Skript auf Teilmengen einer Datentabelle anwendetDas ist mir etwas zu fortgeschritten, aber danke für die Inputs! Ich habe es geschafft, einen Weg zu finden, das Ergebnis ohne zu viel manuelle Handhabung zu erhalten, und für jetzt ist es gut genug.
Am besten
Claire