Salut tout le monde, j'ai un script qui crée de nouvelles colonnes numériques pour toutes les colonnes qui ont de très petites valeurs (c'est-à-dire transformer une colonne qui a des mètres unitaires en mm ou µm pour une meilleure lisibilité).
Cela semblait bien fonctionner; les colonnes ont été générées sans problème. Mais j'ai eu quelques problèmes plus tard lors de la jonction avec d'autres tables, soudainement les colonnes n'ont plus montré de données. Lorsque je vérifie la formule dans les nouvelles colonnes, je vois qu'au lieu du nom de la colonne source, elle a une référence colnames[i] de la boucle dans le script (voir capture d'écran).
Names Default To Here( 1 );
dt = Current Data Table();
colnames = dt << get column names( numeric, string );
For( i = 1, i <= N Items( colnames ), i++,
If( (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))<1e-4 & (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))>0,
If( !Contains( colnames, colnames[i] || "_µm"),
dt << New Column( colnames[i] || "_µm", Formula( As Column( colnames[i] ) * 1e6 ) ) )
,
If( (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))<1e-1 & (Col Max( column(dt,colnames[i]))-Col Min( column(dt,colnames[i])))>1e-4,
If( !Contains( colnames, colnames[i] || "mm"),
dt<<NEW column=""></NEW>
salut @mvanderaa1 ,
C'est un problème assez courant, pouvez-vous essayer l'une des options répertoriées dans le lien ci-dessous ?
Insérez une expression dans une autre à l'aide d'Eval Insert, Eval Expr, Parse et Substitute
Mon préféré est le premier :
//Eval Expr
For( i = 1, i <= N Items(cols), i++,
Eval( Eval Expr(
dt << New Column(
"2 * " || Char( cols[i] ),
Numeric,
"Continuous",
Formula( As Column( Expr( Char( cols[i] ) ) ) * 2)
)
) )
);