全て、
次の場合に助けが必要です。
文字列形式の列の名前があります。
古い列を基にした数式で新しい列を作成する必要があります。 私はそうします:
oldCol = "OldColumn";
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
次に、スクリプトの後半で、古い列の名前を変更する必要があります。 私はこのようにします:
Column(oldCol) << Set Name("NewOldColumn");ここでの問題は、新しい列の式が次の形式であるためです。
As Column("OldColumn")OldColumnの名前が変更されても更新されません。
の形で欲しいです
:OldColumn
しかし、私はそれを行う方法がわかりません。
したがって、問題は次のとおりです。式を変更するにはどうすればよいですか。
Eval( Eval Expr( dt << New Column( "NewColumn", formula( As Column( Expr( oldCol ) ) ) ) ) );
の形で式を生成するように:OldColumn 、ではなくAs Column( "OldColumn") ?
遊ぶための完全なスクリプトは次のとおりです。
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");ありがとう、M。
私はそれを行う1つの方法を見ています(しかし、この方法ではありません)。
列名を文字列としてではなく参照として取得し、次に使用する名前Expr() :
oldCol = (dt << Get Column Names())[1];<BR />Eval( Eval Expr( dt << New Column( "NewColumn", formula( Name Expr( oldCol ) ) ) ) );
しかし、私はすでに列の名前を文字列として持っているので、それを使い続けたいと思います。