Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Bonjour, Comment puis-je définir de manière conditionnelle et par programme un type de données pour une nouvelle colonne? J'ai une solution de contournement qui couvre numérique / caractère, et il pourrait être étendu pour d'autres types, mais j'essaie d'obtenir la méthode ci-dessous (marquée «ne fonctionne pas») pour fonctionner. Le journal montre qu'il ne reconnaît pas la variable de type. J'ai essayé quelques choses comme parse () mais j'ai échoué jusqu'à présent.
Names Default To Here( 1 );
dt = open( "$SAMPLE_DATA\Big Class.jmp");
colType = column(dtData,"Name") << get data type;
// doesn't work, error on colType
dt << add multiple columns("New Column", 1, After("Name"), colType);
// works
dt << add multiple columns("New Column", 1, After("Name"), Numeric);
if(colType == "Character", column(dt, "New Column") << data type ("Character"));
Merci,
Mike
Re: Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Merci!
Re: Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Merci d'avoir signalé ce problème. Le message original révélait un défaut au sein de JSL. Quelques solutions intelligentes ont été proposées, qui étaient d'excellentes solutions de contournement. Je peux maintenant signaler que dans JMP 14, le code d'origine (indiqué par "ne fonctionne pas" dans l'exemple de script) fonctionne désormais correctement et comme prévu.
Re: Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Merci!Re: Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Vous avez raison. C'est généralement le meilleur moyen de renseigner des expressions
Re: Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Merci Jim. Ça marche bien. Eval (substitute (expr (...))) m'a toujours confondu quant au moment de l'utiliser car cela semble être un moyen trop compliqué d'obtenir la variable là où elle doit aller. Est-il juste de dire que c'est toujours nécessaire si j'essaye de mettre une variable dans une telle expression?
Merci,
Mike
Re: Comment définir de manière conditionnelle le type de données pour la nouvelle colonne dans JSL?Cela fera l'affaire pour vous
Eval(
Substitute(
Expr(
dt << add multiple columns( "New Column", 1, After( "Name" ), __coltype__ )
),
Expr( __colType__ ), Parse( coltype )
)
)