Ausgewählte Spalte für Formel in einer neuen Spalte verwendenHi,
Ich versuche, ein Skript zu generieren, in dem ich eine Spalte auswählen muss. Mit dieser Auswahl erstelle ich eine neue Spalte, die eine Formel enthält (mit der ausgewählten Spalte). Hier ist mein Ansatz:
dt = Current Data Table ();
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box( all ), dt << New Table Variable( "Selected Column", lb <<get selected ),
Button Box( "Moving Average", dt <<New Column ("Movin Average", Numeric, Formula (:Range + "selected Column") )
));
Ich habe zwei Probleme:
1. Wie kann ich eine Spaltenvariable durch die Auswahl generieren?
2. Wie kann ich diese Variable in meiner Formel verwenden? Bei "Bereich" (numerisch) ist es möglich, aber bei der ausgewählten Spalte (Zeichen) nicht.
Betreff: Ausgewählte Spalte für Formel in einer neuen Spalte verwendenHigh Jim, das ist ein großartiges Drehbuch.Ist es möglich, zusätzliche Formelspalten (Col Mean() ...) durch Hinzufügen zusätzlicher Formelschaltflächen zu erstellen?
Betreff: Ausgewählte Spalte für Formel in einer neuen Spalte verwendenVielen Dank!
Betreff: Ausgewählte Spalte für Formel in einer neuen Spalte verwendenDer Code beschwert sich, dass der Wert von Range keine Zeichenfolge ist.Um dies zu korrigieren, erzwingt der folgende Code sowohl den Wert von range als auch den zurückgegebenen Spaltennamen als Zeichenfolgen, indem er die Funktion char() verwendet, um sicherzustellen, dass es sich um Zeichenfolgen handelt.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( char(dt << get table variable( "Range" )) || " + :" || char((lb << get selected)[1]) )
)
)
)
);Betreff: Ausgewählte Spalte für Formel in einer neuen Spalte verwendenDanke!
Wenn ich auf den Code schaue, sollte es genau das sein, wonach ich suche. Aber ich bekam eine Fehlermeldung:
Argument sollte Zeichen im Zugriff oder Auswertung von 'Concat' sein, Bad Argument( (lb << get selected)[1] ), dt << get table variable( "Range" ) || /*###*/" + :" || /*####/(lb << ausgewählt werden
)[1] /*##****/
Als Tabellenvariable habe ich die ausgewählte Spalte bekommen. Aber die Auswertung der Formel für die neue Spalte ist nicht möglich.
Muss ich Einstellungen in meiner JMP-Version ändern?
Betreff: Ausgewählte Spalte für Formel in einer neuen Spalte verwendenHier ist ein funktionierendes Beispiel für ein Skript, das das tut, was ich glaube, dass Ihr ursprüngliches Skript versucht hat.
dt = Open( "$SAMPLE_DATA\big class.jmp" );
dt << New Table Variable( "Range", 2 );
New Window( "Select Column",
lb = Col List Box(
Data Table( dt << get name ),
all,
min col( 1 ),
max col( 1 ),
dt << New Table Variable( "Selected Column", (lb << get selected )[1])
),
Button Box( "Moving Average",
Eval(
Substitute(
Expr(
dt << New Column( "Movin Average", Numeric, Formula( __formula__ ) )
),
Expr( __formula__ ), Parse( dt << get table variable( "Range" ) || " + :" || (lb << get selected)[1] )
)
)
)
);
Jetzt habe ich das Problem, ein paar Dinge zu verstehen.
- Warum erstellen Sie Tabellenvariablen für den Wert von Range und den Namen der neuen Spalte?
- Ist die von Ihnen angegebene Formel tatsächlich das, was Sie wollen?Das Hinzufügen der Zahl 2 zum Wert einer anderen Spalte ergibt keinen gleitenden Durchschnitt.Wollen Sie wirklich einen echten gleitenden Durchschnitt der aktuellen Zeile und der vorherigen Werte aus den letzten 2 Zeilen erstellen?