Minimum mobile (fenêtre mobile)Est-ce que quelqu'un sait comment calculer un minimum mobile (ou d'ailleurs comment sélectionner de manière itérative un nombre X de lignes de décalage et leur faire quoi que ce soit, comme calculer un minimum, un maximum, une plage, etc. Dans cet exemple spécifique, je veux revenir sur dites les 100 dernières lignes et obtenez la valeur minimale, puis passez à la ligne suivante et faites la même chose (encore et encore).
Conception d'expériencesRe : Minimum mobile (fenêtre mobile)Est-ce que quelque chose comme ça fonctionnerait?
Names default to here( 1 );
dt = open("$SAMPLE_DATA\Big Class.jmp");
dt << New Column("Min height 5 back",
Formula(
Min( // since we want a minumum
:height[// the column we want the minimum of
// a slice of the current row minus 5 (minimum 1 so it's still on the datatable)
// and current row
Min( Row() - 5 )::Row()
]
)
)
);Re : Minimum mobile (fenêtre mobile)La macro ci-dessous n'est pas particulièrement élégante, mais fera l'affaire.
For ( i= 100, i <= N Rows ( dt ), i++,
dt << Select Rows (Index (i-99, i));
dt << Subset(
Selected Rows( 1 ),
Selected Columns ( 0 ),
Output Table ("out")
);
Current Data Table ( Data Table ("out"));
x = Col Minimum ( :YourDataColumn );
Close ( Data Table ( "out"), no save);
Column ( "YourMovingWindow" )[i] = x;
)Sous-régler les données sélectionnées, comme je l'ai fait, est lent. Peut-être qu'un autre utilisateur a une meilleure idée de la façon d'accéder aux données sélectionnées et d'extraire le produit souhaité.
Je me demande également à quoi pourrait ressembler une formule de colonne pour obtenir les résultats sans macro.
Acclamations,
Kofi