créer de nouvelles colonnes avec une boucle for avec les noms de colonne et la formuleJ'essaie de créer une table fractionnée à partir d'une table existante et d'ajouter de nouvelles colonnes dans les tables fractionnées, chacune avec une formule basée sur les colonnes qui ont été fractionnées. Cependant, le code crée les nouvelles colonnes mais me donne "Erreurs d'évaluation de formule"
dt2 = Current Data Table();
// Create the split data table
dt2 = dt << Split(
Split By( :S ),
Split(
:Name( "Median(data)" )
),
Group( :L, :m, :C, :P, :z, :x ),
Remaining Columns( Drop All ),
Sort by Column Property
);
colname = {"B","C"};
colby = {"A","B"};
// Add new columns to the split data table
For( i = 1, i <= N Items( colname ), i++,
dt2 << New Column( colname[i]||"/"||colby[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( column(colname[i]) / column(colby[i]) )
););Automatisation et scriptRe : créer de nouvelles colonnes avec une boucle for avec les noms de colonne et la formuleLa définition de formule JMP ne sera pas évaluée lors de sa définition, uniquement lors de son exécution.Par conséquent, la formule doit être présentée au JMP sous une forme parfaitement définie.
Column( colname[i] ) / Column( colby[i] )
doit être présenté à JMP comme
Column( "B" ) / Column( "A" )
L'utilisation de la fonction de remplacement permet d'étendre le code selon les besoins
// Add new columns to the split data table
For( i = 1, i <= N Items( colname ), i++,
Eval(
Substitute(
Expr(
dt2 << New Column( colname[i] || "/" || colby[i],
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( Column( __colname__ ) / Column( __colby__ ) )
)
),
Expr( __colname__ ), colname[i],
Expr( __colby__ ), colby[i]
)
)
);Re : créer de nouvelles colonnes avec une boucle for avec les noms de colonne et la formuleJe reçois toujours la même erreur, comme ci-dessous
Column B/A Formula Interrupted
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, Column( "B" ) / /*###*/Column( "A" ) /*###*/
Formula evaluation errors have been ignored
Column C/B Formula Interrupted
Cannot convert argument to a number [or matrix] 1 times At rows: 2 Operation: Divide, Column( "C" ) / /*###*/Column( "B" ) /*###*/
Formula evaluation errors have been ignored
Re : créer de nouvelles colonnes avec une boucle for avec les noms de colonne et la formuleEssayez de changer la fonction Column() en fonction As Column()
Re : créer de nouvelles colonnes avec une boucle for avec les noms de colonne et la formuleCela a fonctionné, merci !