Sottoinsieme di un elenco utilizzando varie condizioniHo un elenco di medie mobili giornaliere calcolate da dati di 5 minuti. Sebbene sia in grado di creare correttamente questo elenco, non riesco a capire come individuare nell'elenco quando vengono soddisfatte determinate condizioni e quindi creare una nuova tabella di dati contenente :Date quando queste condizioni sono soddisfatte. Il codice seguente cattura le date corrispondenti a ciascun record nella ma_list, non solo quelle corrispondenti alla condizione specificata. È possibile creare criteri di valutazione "complessi" quando si lavora con gli elenchi e, in tal caso, come potrebbe essere il codice JSL? Ogni suggerimento sarà molto apprezzato.
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: Sottoinsieme di un elenco utilizzando varie condizioniMark,
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: Sottoinsieme di un elenco utilizzando varie condizioniCosa intendi per "valutazione avanti e indietro?" Tutto è possibile in uno script JMP!
Re: Sottoinsieme di un elenco utilizzando varie condizioniGrazie Marco per il suggerimento,
Speravo che potessimo fare alcune complesse valutazioni avanti e indietro della matrice, ma ora vedo che non è del tutto possibile. Il tuo suggerimento aiuta sicuramente a ottenere la valutazione di cui avevo bisogno, mostrandomi anche come affrontare questo tipo di cose in futuro. Grazie.
Re: Sottoinsieme di un elenco utilizzando varie condizioniVedi se questo approccio aiuta:
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];