Definieren Sie die Spaltenformel aus der BenutzereingabeHallo,
Ich versuche, eine neue Spaltenformel aus Benutzereingaben zu definieren. Ich habe verschiedene Kombinationen von Eval (), Eval Insert () und Parse () ohne Erfolg versucht. Die Eingabe kann entweder aus Spalten oder aus Spaltenlisten plus einem Skalar bestehen. Unten ist ein minimales Beispiel. Irgendwelche Vorschläge? Ich verwende JMP14, hoffe aber, dass die Lösung für JMP12 und höher funktioniert.
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Define new column.
dt << New Column( "Mean for Each Age and Sex Group",
Formula( Col Mean( :height, :age, :sex ) )
);
// Define user input.
a = 2;
c1 = :height;
c2 = {:age, :sex};
// Define new column from user input.
dt << New Column( "Mean for Each Age and Sex Group 2",
Formula( Col Mean( a * c1, c2 ) )
);Betreff: Spaltenformel aus Benutzereingabe definierenIch bin nicht ganz sicher, welche Formel Sie in der neu erstellten Spalte von Benutzereingaben wollen, aber sehen Sie sich das an JSL-Kochbuchartikel Hier finden Sie Beispiele für verschiedene Methoden zur Erstellung Ihrer neuen Spaltenformel.
Betreff: Spaltenformel aus Benutzereingabe definierenVielen Dank! Sehr nützliche Seite.
Betreff: Spaltenformel aus Benutzereingabe definierenMit Hilfe von @ich h 's Input, hier ist eine Lösung für alle Interessierten ...
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Big Class.jmp" );
// Define user input.
a = 2;
c1 = Column( "height" );
c2 = {:age, :sex};
// Define new column from user input.
input = Concat( "As Column( \!"", c1 << Get Name, "\!" )" );
If( N Items( c2 ) > 0,
For( i = 1, i <= N Items( c2 ), i++,
input = Insert( input, Concat( ", ", "As Column( \!"", Char( c2[i] ), "\!" )" ) )
)
);
Eval( Parse( Eval Insert( "dt << New Column( \!"Mean for Each Age and Sex Group 2\!", Formula( ^a^ * Col Mean( ^input^ ) ) )" ) ) );