Subconjunto de una lista usando varias condicionesTengo una lista de promedios móviles diarios calculados a partir de datos de 5 minutos. Aunque puedo crear esta lista con éxito, parece que no puedo averiguar cómo ubicar en la lista cuando se cumplen ciertas condiciones y luego crear una nueva tabla de datos que contenga: Fecha cuando se cumplen estas condiciones. El siguiente código toma las fechas correspondientes a cada registro en ma_list, no solo las correspondientes a la condición especificada. ¿Es posible crear criterios de evaluación "complejos" cuando se trabaja con listas y, de ser así, cómo sería ese código JSL? Cualquier sugerencia sería muy apreciada.
ma_list = [46.6, 51.6, 50.8, 52.8, 58.4, 57.6, 62.2, 62.2, 66.6, 63.8, 59.6, 55.6, 57.2, 57.8,
57.4, 59.8, 65.4, 62, 54.6, 51.8, 50, 45.2, 44.2, 42.2, 45.8, 47.8, 52.4, 55.6, 57,
44.4, 34, 20.2, 9.4, 0.4, 0, 0, 0, 0, 0, 4.4, 11, 18, 25.4, 32.4, 36.6, 38.2, 40.2,
44.6, 44, 41.4, 39, 38.4, 33, 33.8, 39.2, 40.4, 37.8, 37.6, 36.4, 31, 30,
30.3333333333333]
// Locate dates when data shifted from 0 to a positive value
// NOTE: :Date refers to existing column name in data table ma_list was extracted from.
ma_date_list = {};
For( i = 2, i <= N Items( ma_list ), i++,
If ( ma_list[i] > 0 & ma_list[i-1] == 0,
// then
ma_date_list = :Date[ma_row_list]
)
);
Re: Subconjunto de una lista usando varias condicionesMark,
Something like the following
ma_date_list = {};
For( i = 2, i <= N Items( ma_list ), i++,
If ( ma_list[i] > 0 & ma_list[i-1] == 0 & ma_list[i-2] == 0 & ma_list[i-3] == 0,
// then
ma_date_list = :Date[ma_row_list]
)
);
Re: Subconjunto de una lista usando varias condiciones¿Qué quiere decir con "evaluación hacia adelante y hacia atrás"? ¡Todo es posible en un script JMP!
Re: Subconjunto de una lista usando varias condicionesGracias Marcos por la sugerencia,
Tenía la esperanza de que pudiéramos hacer algunas evaluaciones complejas hacia adelante y hacia atrás de la matriz, pero ahora veo que eso no es del todo posible. Su sugerencia ciertamente ayuda a obtener la evaluación que necesitaba y al mismo tiempo me muestra cómo abordar este tipo de cosas en el futuro. Gracias.
Re: Subconjunto de una lista usando varias condicionesVea si este enfoque ayuda:
ma_list = [46.6, 51.6, 50.8, 52.8, 58.4, 57.6, 62.2, 62.2, 66.6, 63.8, 59.6, 55.6, 57.2, 57.8,
57.4, 59.8, 65.4, 62, 54.6, 51.8, 50, 45.2, 44.2, 42.2, 45.8, 47.8, 52.4, 55.6, 57,
44.4, 34, 20.2, 9.4, 0.4, 0, 0, 0, 0, 0, 4.4, 11, 18, 25.4, 32.4, 36.6, 38.2, 40.2,
44.6, 44, 41.4, 39, 38.4, 33, 33.8, 39.2, 40.4, 37.8, 37.6, 36.4, 31, 30,
30.3333333333333];
// create parallel vector lagged by 1
lagged data = ma_list[2::NRow(ma_list)];
// remove the last observation
data = ma_list[1::NRow(ma_list)-1];
// find the positive differences
positives = Loc( (lagged data - data) > 0 & (data == 0) );
// go get 'em
ma_date_list = :Date[positives];