Unsere Daten haben zehn Replikate (Wiederholungen, um genauer zu sein).Die gewünschten Daten liegen zwischen Fahrzeuggeschwindigkeiten von 35 und 70 mph.Für jedes der zehn Replikate existiert eine mit "Zeit" bezeichnete Spalte, und diese Zeitangabe variiert ein wenig aufgrund der Variation des experimentellen Verfahrens.
Ich möchte eine berechnete Spalte mit JMP-Befehlen und nicht mit Skripten für "angepasste Zeit" erstellen.
In dieser Spalte würde der Wert auf Null gesetzt, indem von jedem Zeitwert das erste Mal bei der ersten Geschwindigkeit von 35 mph subtrahiert wird.Für die zehn Replikate müsste diese Spalte die Replikatspalte irgendwie inspizieren und bei der ersten Gelegenheit eines neuen Replikats die angepasste Zeit für die Zeitdaten des Werts von 35 mph dieses Replikats ändern.Auf diese Weise würde jede Spalte "angepasste Zeit" bei Null beginnen und bei 70 Meilen pro Stunde enden.
Irgendwelche Ideen, wie man diese Aufgabe automatisieren kann?Danke im Voraus.
Es könnte einfacher sein, die Formel zu erstellen, je nachdem, ob die:
- Daten werden sortiert
- Wenn 35 Meilen pro Stunde nur einmal pro Wiederholung angezeigt werden
- Wenn 35mph immer den kleinsten Zeitwert hat
Da diese Informationen nicht gegeben wurden oder ich etwas falsch verstanden habe, habe ich eine etwas kompliziertere Formel gewählt:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(12),
Compress File When Saved(1),
New Column("Repeat",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4])
),
New Column("Speed",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([35, 35, 70, 35, 40, 70, 35, 36, 70, 60, 35, 36])
),
New Column("Time",
Numeric,
"Continuous",
Format("Best", 12),
Set Values([1, 2, 3, 1.1, 2, 3, 1.2, 2, 3, 1, 2, 3])
)
);
dt << New Column("Adjusted Time",
Numeric,
"Continuous",
Formula(
If(Row() == 1,
//Find rows with speed of 35
speedRows = Loc(:Speed << get as matrix, 35);
//get repeats for 35 rows
repeats = :Repeat[SpeedRows];
);
//time for first 35mph for current rows repeat
curTime = :Time[Loc(repeats, :Repeat)[1]]; //adjusted time
:Time - curTime;
)
);