Alles,
Brauche Hilfe in folgendem Fall.
Ich habe einen Namen einer Spalte in einem Zeichenfolgenformat.
Ich muss eine neue Spalte mit einer Formel erstellen, die auf der alten basiert. Ich mache es so:
oldCol = "OldColumn";
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
Dann muss ich später im Skript die alte Spalte umbenennen. So mach ich es:
Column(oldCol) << Set Name("NewOldColumn");Das Problem ist jetzt, dass, da ich die Formel der neuen Spalte in der Form habe:
As Column("OldColumn")Es wird nicht aktualisiert, wenn OldColumn den Namen ändert.
Ich hätte es gerne in Form von
:OldColumn
aber ich weiß nicht wie man das macht.
Die Frage ist also: Wie muss ich den Ausdruck ändern:
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
so dass es eine Formel in Form von erzeugt :AlteSpalte , und nicht in Form von Als Spalte ("OldColumn") ?
Hier ist das vollständige Skript zum Spielen:
dt = New Table( "TestColumnsReferences",
Add Rows( 3 ),
New Column( "OldColumn", Character, "Nominal", Set Values( {"a", "b", "c"} ) )
);
oldCol = (dt << Get Column Names(string))[1];
//oldCol = "OldColumn";
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
Column(oldCol) << Set Name("NewOldColumn");Danke M.
Ich sehe eine Möglichkeit, das zu tun (aber lieber nicht so).
Holen Sie sich Spaltennamen nicht als Zeichenfolgen, sondern als Referenzen und verwenden Sie sie dann einfach Name Ausdruck () :
oldCol = (dt << Get Column Names())[1];<BR />Eval( Eval Expr( dt << New Column( "NewColumn", formula( Name Expr( oldCol ) ) ) ) );
aber ich habe bereits den Namen der Spalte als Zeichenfolge und möchte dabei bleiben.