Créer de nouvelles colonnes avec une boucle For et donner à chaque colonne son propre nom et sa propre formuleBonjour à tous,
J'ai une grande table de données avec des valeurs et des en-têtes de colonne test1,test2,test3,test4,...,test800. Certaines de ces valeurs sont négatives, et je voudrais prendre toutes les colonnes que je définis dans la liste "Datalist_log_2" et créer une nouvelle colonne appelée "test1_pos" avec les valeurs absolues. (Pour chaque essai).
Datalist_log_2 = {test1, test2, test5, test319};
wmax = N Items( Datalist_log_2 );
For ( w = 1, w <=wmax, w++,
Temp12 = Char(Datalist_log_2[w]);
NewColName = Temp12||"_pos"; //not sure if I need to do this extra round, but it works. Will figure that out myself.
NewColumn(NewColName, Numeric, Continuous, Formula(Abs(Datalist_log_2[w])))
);
Le problème semble être que Formula() essaie de construire la valeur absolue de la variable "test1" dans la première itération, mais bien sûr je ne veux pas sqrt(test1*test1). Au lieu de cela, je voudrais que la colonne nouvellement créée obtienne les valeurs absolues de la colonne de référence avec le nom "test1".
Merci beaucoup pour votre aide
Re : Créer de nouvelles colonnes avec une boucle For et donner à chaque colonne son propre nom et sa propre formuleCela fonctionne très bien, merci
Re : Créer de nouvelles colonnes avec une boucle For et donner à chaque colonne son propre nom et sa propre formuleVous trouverez ci-dessous une modification de votre code actuel, utilisant la même méthodologie que celle que je vous ai transmise dans votre message précédent " Combinaison de la boucle For et de la commande Dispatch() dans un graphique de variabilité" .Si vous n'êtes pas capable d'interpréter ce qui se passe, je vous suggère de jeter un coup d'œil dans le Guide de script pour obtenir des explications.
Aide==>Livres==>Guide de script
Datalist_log_2 = {test1, test2, test3};
For( w = 1, w <= N Items( Datalist_log_2 ), w++,
Eval(
Substitute(
Expr(
New Column( Char( Datalist_log_2[w] ) || "_pos",
Numeric,
Continuous,
Formula( Abs( __Col__ ) )
)
),
Expr( __col__ ), Parse( ":" || Char( Datalist_log_2[w] ) )
)
)
);Re : Créer de nouvelles colonnes avec une boucle For et donner à chaque colonne son propre nom et sa propre formuleComme c'est opportun, regarde ça Article du livre de cuisine JSL qui fait quelque chose de très similaire.Spécifiez simplement votre propre liste de colonnes à modifier, puis modifiez le nouveau nom de colonne et la nouvelle formule.
Je suggère de sélectionner les colonnes et d'utiliser le message Current Data Table() << Get Selected Columns pour écrire la liste dans le journal, que vous pouvez ensuite copier et coller dans votre code.