私たちのデータには10回の複製があります(より正確には繰り返し)。必要なデータは、時速35マイルから時速70マイルの車速の間にあります。10回の繰り返しのそれぞれについて、「時間」というラベルの付いた列が存在し、実験手順の変動により、その時間の表示は少し異なります。
スクリプトではなくJMPコマンドを使用して、「調整された時間」の計算列を作成したいと思います。
この列では、35 mphの最初の速度で最初に示された時間を各時間値から引くことにより、値がゼロになります。10回のレプリケートの場合、その列は何らかの方法でレプリケート列を検査する必要があり、新しいレプリケートの最初の機会に、そのレプリケートの35mphの値の時間データの調整時間を変更します。このようにして、各「調整時間」列はゼロから始まり、時速70マイルで終わります。
このタスクを自動化する方法はありますか?前もって感謝します。
次の場合に応じて、数式を実行する方が簡単な場合があります。
- データは並べ替えられます
- 35mphがリピートごとに1回だけ表示される場合
- 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;
)
);