Sous-ensemble d'une liste en utilisant diverses conditionsJ'ai une liste de moyennes mobiles quotidiennes calculées à partir de données de 5 minutes. Bien que je sois capable de créer cette liste avec succès, je n'arrive pas à comprendre comment localiser dans la liste lorsque certaines conditions sont remplies, puis créer une nouvelle table de données contenant le :Date lorsque ces conditions sont remplies. Le code suivant récupère les dates correspondant à chaque enregistrement dans ma_list, pas seulement celles correspondant à la condition spécifiée. Est-il possible de créer des critères d'évaluation "complexes" lorsque l'on travaille avec des listes, et si oui, à quoi pourrait ressembler ce code JSL ? Toutes les suggestions seraient grandement appréciées.
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 : Sous-ensemble d'une liste en utilisant diverses conditionsMark,
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 : Sous-ensemble d'une liste en utilisant diverses conditionsQu'entendez-vous par "évaluation en avant et en arrière ?" Tout est possible dans un script JMP !
Re : Sous-ensemble d'une liste en utilisant diverses conditionsMerci Marc pour la suggestion,
J'espérais que nous pourrions faire des évaluations complexes en avant et en arrière de la matrice, mais je vois maintenant que ce n'est pas tout à fait possible. Votre suggestion m'aide certainement à obtenir l'évaluation dont j'avais besoin tout en me montrant comment aborder ce type de chose à l'avenir. Merci.
Re : Sous-ensemble d'une liste en utilisant diverses conditionsVoyez si cette approche aide :
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];