我們的數據有十次重複(重複,更準確)。所需的數據介於 35 到 70 英里/小時的車速之間。對於 10 個重複中的每一個,都存在一個標記為“時間”的列,由於實驗程序的變化,該時間指示略有不同。
我想使用 JMP 命令而不是腳本為“調整時間”創建一個計算列。
在此列中,該值將通過從每個時間值中減去以 35 mph 的第一速度指示的第一時間而歸零。對於十次重複,該列必須以某種方式檢查重複列,並且在第一次新重複時,更改該重複的 35 mph 值時間數據的調整時間。這樣,每個“調整時間”列將從零開始,以 70 英里/小時結束。
任何想法如何自動執行此任務?提前致謝。
根據以下條件,可以更容易地執行公式:
- 數據已排序
- 如果 35mph 每次重複只出現一次
- 如果 35mph 總是最小的時間值
因為沒有提供這些信息或者我確實理解錯誤,所以我使用了一個更複雜的公式:
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;
)
);