Boucle For pour créer des colonnes avec des formules de moyenne mobileJe suis très nouveau sur jmp, j'essaie de passer des feuilles de calcul aux grands ensembles de données. J'essaie de créer une série de colonnes pour calculer différentes moyennes mobiles pour une colonne de données (xV-C). J'ai la plupart du code qui fonctionne pour créer les colonnes, mais la formule pour chaque colonne créée utilise la variable de boucle for (j) au lieu de la valeur de la boucle for (10, 11, 12...) pour chaque colonne. Je pense que je dois faire quelque chose avec Eval et Parse, mais je n'arrive pas à le comprendre. Voici ce que j'ai jusqu'à présent :
pour(j=10,j<=12,j++,
Nouvelle colonne (« xF-C MA » || Char(j), numérique, formule (Col Moving Average( : « xV-C »n, 1, j-1 )))
);
Je suis sûr que c'est facile pour quelqu'un ! J'apprécie votre aide !
Automatisation et scriptsFenêtresRe: Boucle For pour créer des colonnes avec des formules de moyenne mobileBienvenue dans la communauté
Avec une variable spécifiée dans la formule, « J » et la modification de sa valeur dans le JSL, les colonnes contenant la variable changeront en fonction de la valeur de « J ». Pour corriger cela, il faut évaluer la valeur de la variable « J » telle que la formule est spécifiée dans JMP.
Eval(EvalExpr()) forcera l'évaluation avant que JMP n'analyse le code
Essaye ça
For( j = 10, j <= 12, j++,
Eval(
Eval Expr(
New Column( "xF-C MA x " || Char( j ),
Numeric,
Formula( Col Moving Average( :"xV-C"n, 1, Expr( j - 1 ) ) )
)
)
)
);
Re: Boucle For pour créer des colonnes avec des formules de moyenne mobileJ'aime utiliser Eval+EvalExpr mais il existe une autre bonne option Eval+Substitute qui peut parfois être plus facile à lire (pas toujours !). Dans votre cas, cela pourrait ressembler à ceci
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
For(j = 10, j <= 12, j++,
Eval(Substitute(
Expr(
dt << New Column("height " || Char(j), Numeric, Formula(Col Moving Average(:height, 1, _lag_)))
),
Expr(_lag_), j - 1
));
);
Bon (ancien) article lié à ce sujet Insérer une expression dans une autre à l'aide d'Eval Insert, Eval Expr, Parse et Substitute
Re: Boucle For pour créer des colonnes avec des formules de moyenne mobileParfait ! Merci !