Hilfe beim Extrahieren des Namens der im Handumdrehen transformierten VariablenHallo zusammen,
Ich brauche Hilfe bei einem scheinbar einfachen Problem, für das ich keine Lösung finden kann. Ich habe einen JSL-Code geschrieben, um einige Berechnungen durchzuführen, und als Erstes öffnen Sie ein Dialogfeld für Spalten, in dem Sie Tabellenspalten auswählen und sie in verschiedene Rollen einteilen können (in meinem Fall X- und Y-Variablen). Was ich tun muss, ist, die Namen dieser Tabellenspalten abzurufen, damit ich sie später verwenden kann, um die Achsennamen (mit den Funktionen Yname und Xname) in einem Diagrammfeld anzuzeigen. Alles ist in Ordnung, wenn die Tabellenspalten direkt verwendet werden. Wenn ich jedoch eine Umwandlung direkt durch Klicken mit der rechten Maustaste auf die Variable durchführe, bevor Sie eine Rolle im Dialogfeld "Spaltendialog" zuweisen, werden die Dinge komplizierter. Normalerweise würde ich so etwas verwenden:
yn= as column(eval( cdw["yv"])) << Get Name;
wobei cdw im Objekt durch das Spaltendialogfenster zurückgegeben wird. Im Falle einer transformierten Variablen wird jedoch produziert
yn = deleted object reference[];
Wenn ich das Problem zusammenbringe, das eval (cdw [ "yv" ])) würde eine Liste mit einem Element ergeben, die wie folgt aussieht:
{Transformationsspalte ("Log10 [ Name der Tabellensäule ] ", Formel (Log10 (: Name (" Name der Tabellensäule "))))}
Wie kann ich daraus nur die Portion entnehmen? Log10 [ Name der Tabellensäule ] damit ich es in einer Ybox- oder Xname-Anweisung in einer Graph-Box verwenden kann?
Vielen Dank für Ihre Hilfe.
Grüße, Yves
Betreff: Hilfe beim Extrahieren des Namens einer Variablen, die während des Betriebs transformiert wurdeSie haben Recht, ich dachte, die [1] sei, weil in dieser Rolle mehr als eine Variable ausgewählt wurde. Bitte entschuldigen Sie, dass Sie Ihre Lösung nicht gründlicher getestet haben, bevor Sie antworten.
Vielen vielen Dank, Yves
Betreff: Hilfe beim Extrahieren des Namens einer Variablen, die während des Betriebs transformiert wurdeIch denke, du musst etwas anderes machen. Hier ist mein Protokoll, nachdem ich den von mir geposteten Code ausgeführt habe.
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";Betreff: Hilfe beim Extrahieren des Namens einer Variablen, die während des Betriebs transformiert wurdeDanke Jeff, aber es scheint auch nicht zu funktionieren (Ich fühle mich etwas weniger dumm, seit 2 Experten beraten haben und zum selben Punkt gekommen sind wie ich!). Wieder wird der arg () das Ganze zurückgeben:
Transform Column("Age Group^3", Formula(:Age Group ^ 3))Ich möchte nur verwenden können
Age Group^3
Yves
Betreff: Hilfe beim Extrahieren des Namens einer Variablen, die während des Betriebs transformiert wurdeDas arg () Funktion bringt Sie dort hin.
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);Betreff: Hilfe beim Extrahieren des Namens einer Variablen, die während des Betriebs transformiert wurdeDanke Jim für deine schnelle Antwort, aber das wird nicht wirklich funktionieren, weil er das Ganze verwenden wird, dh
Transform Column("Age Group^3", Formula(:Age Group ^ 3)) als Achsname. Dies ist in einer Grafik ziemlich umständlich. Also versuche ich nur das zu extrahieren
Age Group^3
Teil als Achsname.
Nochmals vielen Dank, Yves
Betreff: Hilfe beim Extrahieren des Namens einer Variablen, die während des Betriebs transformiert wurdeAus dem Scripting Index für Col Dialog genommen
Hilfe ==> Skriptindex ......... Suche im Col-Dialog
Hier ist das Beispielskript
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 );
Ich habe einen Verweis auf das Col-Dialogfeld () selbst hinzugefügt. Wenn Sie dies ausführen und eine Transformationsvariable im Dialogfeld "Col" erstellen, zeigt dies an, dass eine Liste mit dem Namen "xx" die Informationen enthält, die Sie benötigen.
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)};
Sie können diese Informationen abrufen, indem Sie aus der xx-Liste aus der Ex-Liste extrahieren