우리의 데이터에는 10개의 복제가 있습니다(더 정확하려면 반복).원하는 데이터는 35~70mph의 차량 속도 사이에 있습니다.10개의 복제물 각각에 대해 "시간"이라고 표시된 열이 존재하며 해당 시간 표시는 실험 절차 변화로 인해 약간 다릅니다.
"조정된 시간"에 대해 스크립트가 아닌 JMP 명령을 사용하여 계산된 열을 만들고 싶습니다.
이 열에서 값은 35mph의 첫 번째 속도로 표시된 첫 번째 시간을 각 시간 값에서 빼서 0이 됩니다.10번의 복제에 대해 해당 열은 복제 열을 어떻게든 검사해야 하며 새로운 복제의 첫 번째 경우 해당 복제의 35mph 값 시간 데이터에 대해 조정된 시간을 변경해야 합니다.이러한 방식으로 각 "조정된 시간" 열은 0에서 시작하여 70mph에서 끝납니다.
이 작업을 자동화하는 방법에 대한 아이디어가 있습니까?미리 감사드립니다.
다음에 따라 공식을 수행하는 것이 더 쉬울 수 있습니다.
- 데이터가 정렬됩니다
- 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;
)
);