Nuestros datos tienen diez réplicas (repeticiones, para ser más precisos).Los datos deseados se encuentran entre velocidades del vehículo de 35 y 70 mph.Para cada una de las diez repeticiones, existe una columna denominada "tiempo", y esa indicación de tiempo varía un poco debido a la variación del procedimiento experimental.
Me gustaría crear una columna calculada, usando comandos JMP, no scripts, para "tiempo ajustado".
En esta columna, el valor se pondría a cero restando de cada valor de tiempo la primera vez indicada a la primera velocidad de 35 mph.Para las diez réplicas, esa columna tendría que inspeccionar de alguna manera la columna de réplica y, en la primera ocasión de una nueva réplica, cambiar el tiempo ajustado para los datos de tiempo de valor de 35 mph de esa réplica.De esta manera, cada columna de "tiempo ajustado" comenzaría en cero y terminaría en 70 mph.
¿Alguna idea de cómo automatizar esta tarea?Gracias por adelantado.
Podría ser más fácil hacer la fórmula dependiendo de si:
- Los datos están ordenados
- Si aparece 35 mph solo una vez por repetición
- Si 35 mph siempre tiene el valor de tiempo más pequeño
Debido a que no me dieron esa información o entendí algo incorrectamente, opté por una fórmula un poco más complicada:
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;
)
);