Aide pour extraire le nom de la variable transformée à la voléeSalut à tous,
J'ai besoin d'aide pour résoudre un problème apparemment simple, mais pour lequel je ne trouve pas de solution. J'ai écrit un code JSL pour faire des calculs et la première chose qu'il fait est d'ouvrir une fenêtre de dialogue de colonne dans laquelle on peut choisir des colonnes de table et les placer dans différents rôles (dans mon cas, variables X et Y). Ce que je dois faire, c'est obtenir les noms de ces colonnes de la table afin de pouvoir les utiliser ultérieurement pour afficher les noms des axes (à l'aide des fonctions Yname et Xname) dans une zone graphique. Tout va bien lorsque les colonnes de la table sont directement utilisées. Toutefois, si je fais une transformation à la volée en cliquant avec le bouton droit de la souris sur la variable avant d'attribuer un rôle dans la fenêtre de dialogue des colonnes, la situation devient plus compliquée. Normalement, j'utiliserais quelque chose comme:
yn= as column(eval( cdw["yv"])) << Get Name;
où cdw dans l'objet est renvoyé par la fenêtre de dialogue de colonne. Cependant, dans le cas d’une variable transformée, cela produira
yn = deleted object reference[];
Si je décompose le problème, le eval (cdw [ "yv" ])) donnerait une liste d'un élément ressemblant à:
{Transformer Column ("Log10 [ Nom de la colonne de table ] ", Formule (Log10 (: Nom (" Nom de la colonne de table "))))}
Comment puis-je extraire de cela que la partie Log10 [ Nom de la colonne de table ] afin que je puisse l'utiliser dans une instruction Yname ou Xname dans une boîte graphique?
Merci beaucoup pour toute aide que vous pouvez fournir.
Cordialement, Yves
Re: Aide pour extraire le nom de la variable transformée à la voléeVous avez raison, je pensais que la [1] était parce qu'il y avait plus d'une variable sélectionnée dans ce rôle. Toutes mes excuses pour ne pas tester votre solution de manière plus approfondie avant de répondre!
Merci beaucoup, Yves
Re: Aide pour extraire le nom de la variable transformée à la voléeJe pense que vous devez faire quelque chose de différent. Voici mon journal après avoir exécuté le code que j'ai posté.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
cd=Column Dialog(
ex y = ColList( "Y", Min Col( 1 ), Max Col( 2 ), Data Type( "Numeric" ) ),
ex x = ColList( "X",
Max Col( 1 ),
Modeling Type( {"Continuous", "Multiple Response"} )
),
Line Up( 2,
Text Box( "Alpha" ), ex = EditNumber( .05 ),
Text Box( "Beta" ), ey = EditText( "xyz" )
),
HList( cb = Check Box( "check", 1 ) ),
HList( combo = Combo Box( "option1", "option2" ) ),
HList( rb = RadioButtons( "a", "b" ) )
);
show(cd["ex y"], arg(cd["ex y"][1], 1));
/*:
//cd["ex y"] = {Transform Column("Birth Year^3", Formula(:Birth Year ^ 3))};
//Arg(cd["ex y"][1], 1) = "Birth Year^3";Re: Aide pour extraire le nom de la variable transformée à la voléeMerci Jeff, mais cela ne semble pas fonctionner non plus (je me sens un peu moins stupide maintenant que 2 experts ont offert des conseils et sont parvenus au même point que moi!). Encore une fois, arg () retournera le tout:
Transform Column("Age Group^3", Formula(:Age Group ^ 3))J'aimerais pouvoir utiliser uniquement
Age Group^3
Yves
Re: Aide pour extraire le nom de la variable transformée à la voléele arg () fonction va vous y arriver.
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
cd=Column Dialog(
ex y = ColList( "Y", Min Col( 1 ), Max Col( 2 ), Data Type( "Numeric" ) ),
ex x = ColList( "X",
Max Col( 1 ),
Modeling Type( {"Continuous", "Multiple Response"} )
),
Line Up( 2,
Text Box( "Alpha" ), ex = EditNumber( .05 ),
Text Box( "Beta" ), ey = EditText( "xyz" )
),
HList( cb = Check Box( "check", 1 ) ),
HList( combo = Combo Box( "option1", "option2" ) ),
HList( rb = RadioButtons( "a", "b" ) )
);
foo=arg(cd["ex y"][1], 1);Re: Aide pour extraire le nom de la variable transformée à la voléeMerci Jim pour votre réponse rapide, mais cela ne fonctionnera pas vraiment car il utilisera le tout, à savoir
Transform Column("Age Group^3", Formula(:Age Group ^ 3)) comme nom d'axe. C'est assez lourd dans un graphique. J'essaie donc d'extraire uniquement le
Age Group^3
partie que le nom de l'axe.
Merci encore, Yves
Re: Aide pour extraire le nom de la variable transformée à la voléeExtrait du Scripting Index for Col Dialog
Aide ==> Index de script ......... recherche dans le dialogue Col
Voici l'exemple de script
Names Default To Here( 1 );
Open( "$SAMPLE_DATA/Consumer Preferences.jmp" );
xx = Column Dialog(
ex y = ColList( "Y", Min Col( 1 ), Max Col( 2 ), Data Type( "Numeric" ) ),
ex x = ColList( "X",
Max Col( 1 ),
Modeling Type( {"Continuous", "Multiple Response"} )
),
Line Up( 2,
Text Box( "Alpha" ), ex = EditNumber( .05 ),
Text Box( "Beta" ), ey = EditText( "xyz" )
),
HList( cb = Check Box( "check", 1 ) ),
HList( combo = Combo Box( "option1", "option2" ) ),
HList( rb = RadioButtons( "a", "b" ) )
);
show( xx );
J'ai ajouté une référence à la boîte de dialogue Col () elle-même. Si vous exécutez cette opération et créez une variable de transformation dans la boîte de dialogue Col, une liste appelée "xx" contient les informations dont vous avez besoin.
xx = {ex y = {Transform Column("Age Group^3", Formula(:Age Group ^ 3))}, ex x = {}, Text Box, ex = 0.05, Text Box, ey = "xyz", cb = 1, combo = 1, rb = 1, Button(1)};
Vous pouvez obtenir cette information en extrayant de la liste ex y de la liste xx