Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempo🙋:female_sign: ¡Hola!
Dentro de la columna "Subtipo", necesito contar la cantidad de veces que aparece "Estadio N2" entre 2 apariciones de la palabra "REM", solo cuando el tiempo en la columna "Inicio" de la segunda aparición REM está dentro de los 15 minutos posteriores a la tiempo en la columna "Fin" de la primera aparición REM.
Ver estrellas en captura de pantalla: en este caso, la cuenta sería 3
¿Cuál es la fórmula para hacerlo?
Gracias :hugging_face: :manos_plegadas:
Automatización y secuencias de comandosMac OSRe: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempo¿Podría proporcionar datos de ejemplo para facilitar las pruebas?
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempo¡Aquí estás!
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempoUna pregunta más, ¿está bien el valor acumulativo? Entonces, ¿en el primer Estadio N2 entre dos REM sería 1 y el segundo 2 y así sucesivamente?
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempoDefinitivamente esta no es la única opción, pero dependiendo de la cantidad de datos que tenga, algo como esto podría funcionar donde agrega dos columnas a su tabla.
Names Default To Here(1);
Current Data Table() << New Column("R", Numeric, Continuous, Formula(
Col Cumulative Sum(If(:SubType == "REM", 1, .))
));
Current Data Table() << New Column("c_n2", Numeric, Continuous, Formula(
If(!IsMissing(:R),
Col Sum(If(:SubType == "Stadium N2", 1, 0), :R);
,
.
);
));
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempoGracias por la sugerencia, esto de hecho identifica todo el N2 intermitente a REM 
Sin embargo, necesito contar solo aquellos que están entre 2 REM, que tienen una diferencia máxima de 15 minutos (la mayoría de las horas de finalización de REM y las siguientes horas de inicio de REM tienen una diferencia de > 15 minutos).
¿Cómo integrarías este filtro de tiempo?
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempo¿Cómo se deben ordenar los datos para eso? Por ejemplo, aquí tenemos el primer final REM antes de que finalice el siguiente.

¿O los datos ya están ordenados correctamente (acabo de cambiar el formato aquí para que sea fecha y hora)? Nos falta información de fecha, entonces, ¿cómo se puede diferenciar cuándo cambia el día o deberíamos adivinarlo en función de las marcas de tiempo?

Editar: yendo con el orden original de los datos y solo preocupándose por verificar el final y el próximo inicio
Names Default To Here(1);
dt = Open("$DOWNLOADS/example(1).jmp");
m_sub = dt[0, "SubType"];
rem_rows = Loc(m_sub, "REM");
rem_ends = dt[rem_rows, "Time of Day[End]"];
rem_starts = dt[rem_rows, "Time of Day[Start]"];
Remove From(rem_ends, N Items(rem_starts));
Remove From(rem_starts, 1);
rem_durs = (rem_starts - rem_ends);
new_col = dt << New Column("Counts", Numeric, Continuous);
For Each({rem_dur, idx}, rem_durs,
If(rem_dur < In Minutes(15) & rem_dur >= 0,
row_start = rem_rows[idx];
row_end = rem_rows[idx + 1];
ntwos = Loc(m_sub[row_start::row_end], "Stadium N2");
ntwo_count = N Items(ntwos);
dt[row_start::row_end, "Counts"] = ntwo_count;
);
);
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempo¡Gracias! De hecho, los valores ya estaban ordenados por Inicio.
Pequeña pregunta complementaria: necesito verificar manualmente la corrección, pero solo puedo hacerlo después de agrupar por otras columnas: ID,: Validado,: Subtipo
¿Dónde y cómo encajaría en la agrupación?
Re: Cuente la ocurrencia entre otras 2 ocurrencias según el período de tiempoAgregar variables de agrupación requeriría muchos cambios en el script. La opción más fácil probablemente sería agregar un subconjunto de creación para cada grupo, ejecutar el cálculo para ellos y luego volver a unirlos a la tabla de datos original (podría ser necesario agregar algún tipo de columna de identificador único). Otra opción bastante fácil sería crear una sola columna de GRUPO y luego recorrer las diferentes opciones usando esa, PERO hay que tener cuidado con los índices.