Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Hallo, wie kann ich bedingt und programmgesteuert einen Datentyp für eine neue Spalte festlegen? Ich habe eine Problemumgehung, die Zahlen/Zeichen abdeckt, und sie könnte auf andere Typen erweitert werden, aber ich versuche, die folgende Methode (mit der Markierung „funktioniert nicht“) zum Laufen zu bringen. Das Protokoll zeigt, dass die Typvariable nicht erkannt wird. Ich habe ein paar Dinge wie parse() ausprobiert, war aber bisher erfolglos.
Names Default To Here( 1 );
dt = open( "$SAMPLE_DATA\Big Class.jmp");
colType = column(dtData,"Name") << get data type;
// doesn't work, error on colType
dt << add multiple columns("New Column", 1, After("Name"), colType);
// works
dt << add multiple columns("New Column", 1, After("Name"), Numeric);
if(colType == "Character", column(dt, "New Column") << data type ("Character"));
Danke,
Mike
Betreff: Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Danke!
Betreff: Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Vielen Dank, dass Sie dieses Problem gemeldet haben. Der ursprüngliche Beitrag enthüllte einen Fehler in JSL. Es wurden ein paar clevere Lösungen angeboten, die tolle Workarounds darstellten. Ich kann jetzt berichten, dass in JMP 14 der Originalcode (im Beispielskript mit „funktioniert nicht“ markiert) nun korrekt und wie erwartet funktioniert.
Betreff: Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Danke!Betreff: Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Du hast Recht. Dies ist normalerweise die beste Methode zum Auffüllen von Ausdrücken
Betreff: Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Danke, Jim. Das funktioniert gut. Das eval(substitute(expr(...))) hat mich immer verwirrt, wann ich es verwenden soll, weil es eine zu komplizierte Möglichkeit zu sein scheint, die Variable dorthin zu bringen, wo sie hin muss. Kann man mit Recht sagen, dass es immer benötigt wird, wenn ich versuche, eine Variable in einen solchen Ausdruck einzufügen?
Danke,
Mike
Betreff: Wie lege ich den Datentyp für eine neue Spalte in JSL bedingt fest?Dies wird den Zweck für Sie erfüllen
Eval(
Substitute(
Expr(
dt << add multiple columns( "New Column", 1, After( "Name" ), __coltype__ )
),
Expr( __colType__ ), Parse( coltype )
)
)