Hängen Sie eine transformierte Variable an ein Col-Listenfeld anHallo zusammen,
Ich kann eine transformierte Variable nicht zu einem Col-Listenfeld hinzufügen, wenn ich die Funktion "Anhängen" verwende.
Hier ist ein Beispiel:
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add", ll2 << append( ll1 << get selected ) ),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
Dann klicke ich zum Beispiel mit der rechten Maustaste auf die Variable "height"> "Transform"> "Log"
Wenn ich die neue Variable "Protokoll [Höhe]" auswähle und auf die Schaltfläche "Hinzufügen" klicke, passiert nichts ...
Hast du eine Idee, wie ich das ändern könnte?
Vielen Dank im Voraus für Ihre Hilfe!
Re: Hängt eine transformierte Variable an ein Col-Listenfeld an<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Vielen Dank für Ihre Antworten W. Murphrey und msharp.
Im Moment scheint es eine gute Möglichkeit zu sein, zu überprüfen, ob die Variable in der Tabelle enthalten ist, und wenn nicht, dem Benutzer mitzuteilen, dass er sie hinzufügen muss, mein Problem zu lösen.
Ich werde es versuchen!
Danke noch einmal.
Re: Hängt eine transformierte Variable an ein Col-Listenfeld anCol List Box () unterstützt Drag & Drop. So können Sie die Schaltfläche Hinzufügen immer durch ein Textfeld ersetzen, in dem "Bitte ziehen und ablegen:" angezeigt wird.
Das größere Problem ist jedoch, dass die Transformationsfunktion sogar durch Klicken mit der rechten Maustaste in das Col List Box () verfügbar ist. Hauptsächlich b / c Ich bin nicht sicher, was Sie tun, wenn Sie dies tun. Sicher ist jedoch, dass Sie offensichtlich keine neue transformierte Spalte in der Datentabelle erstellen. Die Datentabelle ändert sich nicht. Es scheint nur so zu sein, dass der Benutzer jetzt Hocus-Pocus-Spalten erstellen und diese dann in das Analysefeld ziehen und ablegen kann. Dies würde Ihre Anwendung zum Absturz bringen, es sei denn, Sie fügen Funktionen hinzu, um diese imaginären Spalten zu behandeln, indem Sie sie erstellen.
Damit es nicht abstürzt, wenn der Benutzer mit einer gefälschten Spalte auf die Schaltfläche "Ausführen" klickt, müssen Sie überprüfen, ob die ausgewählte Spalte überhaupt vorhanden ist (ähnlich dem Code von W. Murphrey). Wenn die Spalte nicht vorhanden ist, müssen Sie sie erstellen. Da ein Endbenutzer möglicherweise mit der rechten Maustaste klicken und eine Transformation für eine Transformation durchführen könnte, müsste Ihr Code robust genug sein, um dies zu handhaben. Sobald Sie dies implementiert haben, weiß der Endbenutzer, dass er vor der Analyse mit der rechten Maustaste klicken und Spalten erstellen kann. Außerdem werden die zusätzlichen Funktionen angezeigt, sodass Sie mehr Funktionen für Aggregation, Verteilungen, Zeilen und Formel erstellen müssen. Da Sie leider nicht wissen können, wie die Formel für eine erstellte Spalte geändert werden soll, sollten Sie wissen, dass es sich um ein Wurmloch handelt.
Ich würde sagen, dass es am besten ist, dies zu ignorieren und zu warten, bis SAS es implementieren kann, wie W. Murphrey es in späteren Versionen anzeigt. Wenn Ihr Endbenutzer vor der Analyse unbedingt Transformationen für Spalten durchführen muss, geben Sie ihm einfach Zugriff auf die Datentabelle.
Re: Hängt eine transformierte Variable an ein Col-Listenfeld anHallo,
Leider gibt es derzeit keine JSL-Unterstützung für transformierte Spalten in ColListBox. Der Vorschlag wurde dem JMP-Entwicklungsteam zur Prüfung in einer zukünftigen Version vorgelegt.
In der Zwischenzeit können Sie eine Überprüfung hinzufügen, um zu überprüfen, ob die Spalte vorhanden ist. Wenn dies nicht der Fall ist, geben Sie eine Meldung aus, um den Benutzer mitzuteilen, dass transformierte Variablen zur Datentabelle hinzugefügt werden müssen. Klicken Sie dazu mit der rechten Maustaste auf die transformierte Spalte und wählen Sie Zur Datentabelle hinzufügen.
New Window( "Col List Box Example 3",
H List Box(
ll1 = Col List Box( all ),
Button Box( "Add",
colList = dt << Get Column Names( String );
If( Contains( colList, (ll1 << Get Selected)[1] ),
ll2 << append( ll1 << get selected ),
Caption( "Transformed variables must be added to the data table" )
);
),
ll2 = Col List Box( "numeric", MaxItems( 1 ), nlines( 1 ) ),
Button Box( "Remove", ll2 << remove selected )
)
);
Ich hoffe das hilft.
Wendy