Encuentra la diferencia de tiempo entre filasHola,
Estoy trabajando en la configuración de un script. Uno de los pasos es que determinemos si la "marca de tiempo" está dentro de los 30 minutos de la fila superior o inferior, con ellos en orden secuencial por UCN. Obviamente, necesito que esto incluya la fecha y la hora. A continuación se muestra el script/fórmula que estoy usando. Pero cuando lo hago, solo mira las horas y no tiene en cuenta el UCN ni la fecha. Puede ver en mi columna "30 minutos" que no se identifica correctamente.
Esto está configurado para que los UCN sean aquellos que estén a 5 dígitos entre sí. Pero luego necesito determinar si esos UCN tienen una marca de tiempo dentro de los 30 minutos de los que están dentro de los 5 dígitos. Espero que eso tenga sentido. Entonces, si miras las filas 12 y 13, dice que son una coincidencia según la marca de tiempo, pero no lo son porque tienen diferentes códigos de centro y los UCN no están a 5 dígitos de distancia. Las filas 11 y 12 están a 5 dígitos para el UCN, pero la hora está a más de 30 minutos de distancia, por lo que no debería identificarse como un '1'/rojo en la columna 'hora dentro de los 30'.
// New column: Time within 30
Data Table("Time within 30 minutes") << New Column("Time within 30",
Numeric,
"Continuous",
Format("Best", 12),
Formula(
If(
Dif(Num(:Unit Entry Timestamp), 1) <= 30 | Abs(Dif(Num(:Unit Entry Timestamp), -1))
<= 30,
1,
0
)
)
) << Move Selected Columns({:Time within 30}, after(:Positive or Negative));
// Change column info: Time within 30
Data Table("Time within 30 minutes"):Time within 30 <<
Set Property("Value Colors", {0 = 2, 1 = 3}) << Color Cell by Value(1);
Automatización y scriptingExploración y visualización de datosVentanasRe: Encontrar la diferencia horaria entre filasCree una nueva columna en la que combine fecha y hora (fecha + hora) y luego fije su UCN de Pos en números si son números. Luego debería poder usar una idea similar a la que tiene para su comparación de hora con UCN de Pos y con la nueva columna de marca de tiempo.
Re: Encontrar la diferencia horaria entre filasRecuerde también realizar comparaciones en segundos, ya que así es como JMP maneja el tiempo. Por ejemplo, puede utilizar In Minutes(30) para convertir 30 minutos en segundos (o simplemente utilizar 30*6)
Re: Encontrar la diferencia horaria entre filasNecesito que permanezcan como valores de caracteres porque necesito los 0 iniciales.
Re: Encontrar la diferencia horaria entre filasOk, en ese caso crea una nueva columna numérica para ellos o usa Num para la conversión (por supuesto, los 5 dígitos de diferencia pueden significar algo más que la diferencia numérica entre ellos).
¿Puedes proporcionar todas las reglas que tienes en orden de importancia? Por ejemplo, no estoy seguro de cómo se relacionan los códigos centrales con esto (los mencionaste)
- Quiere encontrar filas que tengan valores UNC con una diferencia máxima de 5 (supongo que eso es lo que significa tener 5 dígitos de diferencia)
- Luego, desea valores que estén separados por un máximo de 30 minutos al completar la regla 1.
- ¿Códigos centrales?
- ¿Algo más?
Re: Encontrar la diferencia horaria entre filasLas reglas que has puesto son bastante correctas. El código central es solo el identificador de cada centro. El código central son los primeros 3 dígitos del UCN, si eso te sirve de ayuda. Ya lo tengo en mi script y archivo principal (que es enorme) para filtrar desde aproximadamente 12 000 filas hasta estas 120. Esa hace los UCN con un máximo de 5 dígitos.
El siguiente paso es determinar si los UCN similares tienen una marca de tiempo con una diferencia de 30 minutos entre sí (para el mismo centro y con una diferencia de 5 dígitos entre el UCN y el UCN). Eso es lo que estoy tratando de averiguar cómo hacer. La fórmula que estoy usando actualmente y que no funciona debería aparecer en la opción de fórmula de columna en la tabla que cargué anteriormente.
Re: Encontrar la diferencia horaria entre filasNo estoy seguro de si esta fórmula es correcta, ya que contradice bastante su fórmula.
Current Data Table() << New Column("R", Numeric, Nominal, Formula(
If(:Center Code == Lag(:Center Code) | :Center Code == Lag(:Center Code , -1),
If(Min(Abs(Dif(Num(:Pos UCN))), Abs(Dif(Num(:Pos UCN), -1))) <= 5,
Min(Abs(Dif(:Unit Entry Timestamp)), Abs(Dif(:Unit Entry Timestamp, -1))) <= In Minutes(30)
,
0
)
,
0
);
));

Re: Encontrar la diferencia horaria entre filasEsta es la fórmula que tengo para obtener mi resultado dentro de las 5 columnas.
Si( Dif( Num( :Pos UCN ), 1 ) <= 5 | Abs( Dif( Num( :Pos UCN ), -1 ) ) <= 5,
1,
0
)
Re: Encontrar la diferencia horaria entre filasAcabo de darme cuenta de que no había incluido esa columna en mi pregunta original.
Re: Encontrar la diferencia horaria entre filas¡¡¡Esta fórmula era EXACTAMENTE lo que necesitaba!!! ¡¡¡Gracias!!!