Moyenne d'exécution par série de données utilisant For Loop et le même script sur plusieurs colonnes<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Bonjour,
J'utilise une moyenne mobile à trois points [MA] dans des séries de données de longueur fixe, collectées à des intervalles de temps fixes [c.-à-d. Des séries de 150 points de données collectées toutes les 30 minutes pendant des semaines à ce moment-là]. Un agent de gestion traditionnel fusionnait deux séries de données. J'ai donc ajouté une nouvelle colonne contenant des séries de données [incrémenter des nombres à l'aide de "Séquence (,,,)"] et de l'utiliser comme limiteur pour la plage dans laquelle l'agent de gestion devrait être exécuté. Le script fonctionne et il est assez simple, mais je veux utiliser un plus efficace.
Y a-t-il un moyen de faire cela en utilisant une boucle For où "i" est l'ID de la série de données?
Comment exécuter le même script sur plusieurs colonnes sans avoir à changer le nom de la variable?
C'est le script que j'utilise actuellement:

| Si (: Heure> 1 &: Heure <149, |
Signifier(
: T1_F [Row () - 1, Vide ()],
: T1_F [Row (), Vide ()],
: T1_F [Row () + 1, Vide ()],),
.)
Où "T1_F" est ma variable Y à lisser, et j'ai quelques centaines de Y à lisser.
Tout conseil serait apprécié.
-JGL
Re: Moyenne courante par série de données utilisant For Loop et le même script sur plusieurs colonnesSalut JGL,
Une solution consiste à créer une boucle en utilisant Eval (Parse (Eval Insert ())) pour insérer les colonnes souhaitées dans une formule. Un exemple de script est ci-dessous.
// Exemple.
Noms par défaut jusqu'ici ( 1 ) ;
bigClass = Ouvrir ( "$ SAMPLE_DATA / Big Class.jmp" ) ;
colList = liste ( : la taille , : poids ) ; // Colonnes pour créer des moyennes mobiles.
Pour ( je = 1 , je <= Longueur ( colList ) , je ++,
col = Colonne ( colList [ je ] ) ;
colName = Concat ( "MA (" , colList [ je ] << Obtenir le nom () , ")" ) ;
Eval (
Analyser (
Eval Insert (
"bigClass << Nouvelle colonne (\!" ^ colName ^ \! ",
Numérique,
Continu,
Format (\! "Best \!", 12),
Formule (Moyenne (En tant que colonne (^ col ^)) [Row () -1, Vide ()],
As Column (^ col ^) [Row (), Empty ()],
As Column (^ col ^) [Row () + 1, vide ()]))); "
)
)
) ;
) ;