création d'une formule à l'aide de noms de colonnes existantsNames Default To Here( 1 );
dt = Current Data Table();
numcol=dt << Get Column Names(Numeric);
charcol=dt << Get Column Names( Character);
For( k = 1, k <= N Items( numcol ), k++,
colname=column(numcol[k]) <<GET name=""></GET>
Salut les utilisateurs de JMP,
J'ai une table de données dont j'ai besoin pour effectuer des conversions sur des colonnes numériques en fonction de critères prédéfinis.
J'obtiens l'erreur "L'expression ne correspond pas aux types de colonnes disponibles à la ligne 1 dans l'accès ou l'évaluation de 'Bad Argument'".
Une idée sur la façon de résoudre ce problème ? Apprécié !
ScriptRe : création d'une formule à l'aide de noms de colonnes existantsVous avez 2 problèmes en cours ici.
- Lorsqu'une formule est présentée dans une nouvelle colonne, elle n'est pas traitée avant d'être ajoutée en tant que formule.Par conséquent, lorsque vous spécifiez
:Column(dt, colname)
JMP ne le remplace pas par le premier nom de colonne numérique, puis le second, etc.L'auteur JSL doit utiliser un code qui développera la référence dans l'instruction JSL complète/terminée avant de la transmettre à l'élément Format
- Les noms de colonne de votre tableau de données, c'est-à-dire 1, 2, 3, 4, etc. entraîneront des problèmes d'interprétation dans JMP, à moins que vous n'indiquiez spécifiquement qu'ils doivent être interprétés comme des noms de colonne.Par conséquent, vous devez utiliser la structure :"nom de la colonne"n
Vous trouverez ci-dessous une refonte de votre code qui produit les nouvelles colonnes que vous souhaitez
Names Default To Here( 1 );
dt = Current Data Table();
numcol = dt << Get Column Names( Numeric );
charcol = dt << Get Column Names( Character );
For( k = 1, k <= N Items( numcol ), k++,
colname = Column( numcol[k] ) << Get Name;
Eval(
Substitute(
Expr(
dt << New Column( "site" || numcol[k],
formula(
If(
:ID == "item5", (__colname__ * 0.5) / 20,
:ID == "item8", (__colname__ * 0.8) / 20,
__colname__
)
)
)
),
Expr( __colname__ ), Parse( ":\!"" || colname || "\!"n")
)
);
);Re : création d'une formule à l'aide de noms de colonnes existantsMerci Jim ça marche !