ビッグデータテーブルの同じサフィックスを持つ複数の列を合計するための数学列を追加するスクリプトを作成しようとしています。そしてこれらのコラムは特別な文字、例えば%、[、]などを持ち、それはフォーラムの既存の解決策を壊しました。
例えば、
100列のうち、4つの列があります。クラス0パーセント%、クラス1パーセント%、クラス2パーセント%、クラス3パーセント%
これは私が書き込もうとしたスクリプトです。
dt = Current Data Table();
col_list = dt << get column names( string );
For( i = N Items( col_list ), i > 0, i--,
If( !Contains( col_list[i], "Percent%" ),
Remove From( col_list, i )
)
);
new_formula = "SUM(";
For( i = N Items( col_list ), i > 0, i--,
new_formula = new_formula || "\[:Name( "]\" || col_list[i] || "\["), ]\";
);
new_formula = new_formula || ")";
dt << New Column( "Sum Class",
Numeric,
Continuous,
Formula( Name Expr( new_formula ) )
);
そして結果の式は次のとおりです。
"SUM(:名前(\!" Class3パーセント%\!")、:Name(\!" Class2パーセント%\!")、:Name(\!" Class1パーセント%\!")、:Name(\!"Class0パーセント%\!")、) "
どうすれば\を取り除くことができます!?ありがとうございます。
あなたの継続的なサポートのためのジムに感謝します!
以下を太字で追加/変更しました。
new_formula_final =解析(new_formula);
dt << New Column( "Sum Class"、
数値、
連続した、
フォーマット( "Fixed Dec"、8、2)、
式(名前Expr( new_formula_final ))
)
;
文字列をParse()すると、外側の引用符が削除されます。
多分私の質問は明確ではなかった。
問題は、列の式が文字列全体としてキャラクターカラム。しかし、私は数学の公式を作成しようとしています:
SUM(:名前( "クラス3パーセント%")、:名前( "クラス2パーセント%")、:名前( "クラス1パーセント%")、:名前( "クラス0パーセント%")、)
正しい数学式を実現するためにスクリプトを修正するにはどうすればよいですか。ありがとうございます。
あなたは\!を取り除きたくはありません。" !JMPのエスケープ文字です。 あなたが与えたコードは文字列なので、文字列内に配置された二重引用符は各二重引用符の前にexcape文字を持たなければなりません。 文字列を実行すると、JMPは\!を正しく処理します。