Tutti,
Hai bisogno di aiuto nel seguente caso.
Ho un nome di una colonna in un formato stringa.
Devo creare una nuova colonna con una formula basata su quella vecchia. io lo faccio così:
oldCol = "OldColumn";
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
Quindi più avanti nello script devo rinominare la vecchia colonna. io lo faccio così:
Column(oldCol) << Set Name("NewOldColumn");Il problema ora è che poiché ho la formula della nuova colonna sotto forma di:
As Column("OldColumn")non si aggiorna quando OldColumn cambia nome.
Vorrei averlo sotto forma di
:OldColumn
ma non so come farlo.
Quindi, la domanda è: come devo modificare l'espressione:
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
in modo che produca la formula sotto forma di : Colonna Vecchia , e non sotto forma di Come colonna ("OldColumn") ?
Ecco lo script completo con cui giocare:
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");Grazie, m.
Vedo un modo per farlo (ma piuttosto non farlo in questo modo).
Ottieni i nomi delle colonne non come stringhe, ma come riferimenti, quindi usa semplicemente Nome Espr() :
oldCol = (dt << Get Column Names())[1];<BR />Eval( Eval Expr( dt << New Column( "NewColumn", formula( Name Expr( oldCol ) ) ) ) );
ma ho già il nome della colonna come stringa e vorrei attenermi ad esso.