式の列名に引用符を使用できますか?こんにちは、
私はテーブルに次の簡単なスクリプトを書いています。
dataTable = Current Data Table();
If( !Contains( strColNames, "pears" ),
dataTable << New Column( "pears",
numeric,
"Continuous",
Formula( :"apples" + 2 )
)
);
このスクリプトを新しいテーブルにコピーすると(ctrl-c ctrl-vを使用)、すでに "apples"という名前の入力欄があります。スクリプトは次のようになります。
dataTable = Current Data Table();
If( !Contains( strColNames, "pears" ),
dataTable << New Column( "pears",
numeric,
"Continuous",
Formula( As Column() + 2 )
)
);
列 "りんご"への参照は、式のAs Column()ステートメントに置き換えられます。スクリプトは機能しなくなりました。式の列「りんご」への参照から引用符を削除すると、問題が解決したことがわかります。
これはバグだと思います。それですか、それともこれは予想される動作ですか。
よろしく、ラドコ
Re:式の列名に引用符を使うことはできますか?私はこれを少し違うやり方でやっています。 以下の関数を使って列を作成します。 列が存在する場合は単純に列ハンドルを返し、列が存在しない場合は新しい列を作成してハンドルを返します。 そのため、使い方は次のようになります。
PearCol = createcol(dt、"Pears"、"NUMERIC"); // "NUMERIC"または "CHARACTER"
AppleCol = createcol(dt、"Apples"、"NUMERIC");
PearCol <<各値を設定します(AppleCol [] + 2)。
私は「各値を設定する」を使用することを好みますが、それがあなたのアプリケーションでもっと理にかなっているならばあなたは式を設定することもできます。
CreateCol =関数({ct、ccn、ColType}、
{デフォルトローカル}、
CreateColExpr = Expr(
stuff = __CurDataTable__ <<新しい列(__ColName__、__ColType__)
;
stuff = Try(Column(ct、ccn)、-1);
待つ(0);
(stuff == -1の場合、
CreateColumn = Substitute(Name Expr(CreateColExpr)、
Expr(__ColType__)、解析(ColType)、
Expr(__CurDataTable__)、Eval(ct)、
Expr(__ColName__)、Eval(ccn)
;
表示(CreateColumn);
評価(CreateColumn);
;
もの
;
Re:式の列名に引用符を使うことはできますか?あなたは手動で引用符を処理する必要があります。 以下のコードを見てください。
dataTable = Current Data Table();
If( !Contains( strColNames, "\!"pears\!"" ),
dataTable << New Column( "\!"pears\!"",
numeric,
"Continuous",
Formula( :Name( "\!"apples\!"" ) + 2 )
)
);