JSLでテーブルを作成、「新しい列」の問題こんにちは、
ファイルの最初のデータ行を使用してデータ型からJSLのテーブルを作成しようとしています。 しかし、数値以外のタイプのスクリプトで新しい列を作成することはできません。 これは動作します:
dt << New Column("test", Character, Nominal)ただし、これ(簡略化された例)は数値列のみを生成します。
cols = {"A", "B", "C"};
type = {};
For(i = 1, i <= N Items(cols), i = i + 1,
type[i] = Match(cols[i],
"A", Expr(Character),
Expr(Numeric);
);
);
For(i = 1, i <= N Items(cols), i = i + 1,
dt << New Column(cols[i], Eval(type[i]), Nominal);
);予想される動作は、1つの文字列と2つの数値を作成することです。 式type [i]がここで無視される原因は何ですか?
再:JSLでテーブルを構築、「新しい列」の問題New Column()関数内の一部の項目は、解析時に評価されないため、処理時に完全なJSLステートメントである必要があります。 Substitute()関数はそれを可能にします。 あなたがしていることをするために私が使用するコードは次のとおりです。
dt = New Table( "Example" );
cols = {"A", "B", "C"};
type = {};
For( i = 1, i <= N Items( cols ), i = i + 1,
Eval(
Substitute(
Expr(
dt << New Column( cols[i], __type__, Nominal )
),
Expr( __type__ ), Match( cols[i], "A", Expr( Character ), Expr( Numeric ) )
)
)
);再:JSLでテーブルを構築、「新しい列」の問題できます!あなたができるこれを拡張する
Eval(
Substitute(
Expr(dt << New Column(__cols__, __type__, ...)),
Expr(__cols__), cols[i],
Expr(__type__), type[i],
...
);
);
ありがとう!