Skript zur Tabellenverarbeitung JMP14Hallo. Können Sie mir bitte helfen, ein Skript zu schreiben, das aus der Originaltabelle eine neue Tabelle erstellt? Die Originaltabelle hat zwei Zeilen pro Temperaturmessung einer Probe. In der Ausgabetabelle verwenden wir nur eine Zeile pro Probe und berechnen die Anzahl der Tage zwischen den beiden Messungen und das Temperaturdelta.
Automatisierung und SkriptingWindowsBetreff: Skript zur Tabellenverarbeitung JMP14Könnten Sie die Beispieldaten als JMP-Tabelle bereitstellen, damit wir sie nicht aus dem Bild erstellen müssen (Formate können große Auswirkungen auf das Skript haben)
Betreff: Skript zur Tabellenverarbeitung JMP14Sie könnten zwei Formelspalten hinzufügen, die das Maximum und Minimum für jede Probe (Temperatur und Datum) berechnen:

Oder führen Sie das folgende Skript aus, um Ihre Beispieltabelle mit Formelspalten zu erhalten.
New Table( "Example",
Add Rows( 8 ),
New Column( "Sample",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [1, 1, 2, 2, 3, 3, 99, 99] )
),
New Column( "Temperature",
Numeric,
"Continuous",
Format( "Best", 12 ),
Set Values( [199, 210, 201, 217, 200, 215, 199, 220] )
),
New Column( "Temp Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Col Maximum( :Temperature, :Sample )
-Col Minimum( :Temperature, :Sample )
)
),
New Column( "Date (ISO 9601 format)",
Numeric,
"Continuous",
Format( "yyyy-mm-dd", 10 ),
Input Format( "yyyy-mm-dd" ),
Set Values(
[3795552000, 3798576000, 3795552000, 3798748800, 3795552000, 3798662400,
3795552000, 3798921600]
)
),
New Column( "Date Diff",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula(
Date Difference(
Col Minimum( :"Date (ISO 9601 format)"n, :Sample ),
Col Maximum( :"Date (ISO 9601 format)"n, :Sample ),
"Day"
)
)
)
)
Anschließend erhalten Sie in einer kurzen Zusammenfassung die gewünschte Tabelle:

Betreff: Skript zur Tabellenverarbeitung JMP14Hallo Jarmo. Danke für deine Unterstützung. Im Anhang findest du alles.
Betreff: Skript zur Tabellenverarbeitung JMP14Hallo Paul. Danke für deine Idee. Funktioniert dieser Ansatz, wenn das Temperaturdelta manchmal negativ ist und es für mich kritisch ist?
Betreff: Skript zur Tabellenverarbeitung JMP14Okay. Ich habe nachgeschaut, es funktioniert nicht. Können wir eine andere Formel verwenden, um die Temperaturmessung vom späteren Datum und vom früheren Datum auszuwählen?
Betreff: Skript zur Tabellenverarbeitung JMP14Sie können folgende Formeln verwenden
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2 - :Temperature)
Und
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) / In Days(1)
um die Deltas zu berechnen.

Erstellen Sie dann entweder eine neue Tabelle ohne die 0 Zeilen (schließen Sie in dieser Tabelle keine Formeln ein) oder entfernen Sie die Formeln und löschen Sie diese 0 Zeilen.

Ich denke, dieses Skript sollte für JMP14 funktionieren (ich kann es nicht testen, da ich keinen Zugriff darauf habe)
Names Default To Here(1);
dt = Open("$DOWNLOADS/source table.jmp");
dt << New Column("Time Delta", Numeric, "Continuous", Formula(
:Temperature - (Col Moving Average(:Temperature, 1, 1, 0, :Sample) * 2
- :Temperature)
));
dt << New Column("Temperature Delta", Numeric, "Continuous", Formula(
(:Date - (Col Moving Average(:Date, 1, 1, 0, :Sample) * 2 - :Date)) /
In Days(1)
));
dt << Select Where(:Temperature Delta == 0) << Invert Row Selection;
dt_subset = dt << Subset(
Copy formula(0),
Selected Rows(1),
Columns({"Sample", "Time Delta", "Temperature Delta"}),
Output Table("Deltas")
);
dt << Clear Select;Betreff: Skript zur Tabellenverarbeitung JMP14Danke Jarmo. Lass mich es versuchen.
Betreff: Skript zur Tabellenverarbeitung JMP14Jarmo, vielen Dank für deine Lösung. Sie funktioniert.
Ich habe aber noch zwei Fragen:
1. Könnten Sie bitte erklären, was die Formel zur Berechnung des gleitenden Durchschnitts bewirkt? Ich möchte nur die Logik Ihres Ansatzes verstehen ...
2. Mir ist gerade aufgefallen, dass, wenn die erste Zeile ein späteres Datum enthält, dies ein negatives Zeitdelta ergibt ... Das Zeitdelta sollte immer positiv sein. Funktioniert es, wenn ich die Quelltabelle ganz am Anfang sortiere, damit Ihr Skript korrekt funktioniert?
Betreff: Skript zur Tabellenverarbeitung JMP14Das Sortieren sollte funktionieren, aber Sie könnten in diesem Fall auch andere Formeln in Betracht ziehen (wenn die Reihenfolge immer „später – früher“ lautet). Ich verwende „Col Moving Average“, damit ich für die Gruppe auf den Wert aus der vorherigen Zeile zugreifen kann.