こんにちは、みんな、
コードの評価が妨げられるため、余分なスペースを追加する Parse() を回避する方法に苦労しています。
「AA BBBB CCC(dd)」のような名前の関心のある列があるデータ テーブルがあり、自分で行った適合の推定値をシミュレートしたい評価を行っています。 これを実行しているコードのセクションは次のとおりです。
Eval(
Parse(
"\[report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out( ]\"
|| YCols[1] || "\[ ),
In( :Simulated Y )
);]\"
)
);
これはほとんどの場合うまく機能しますが、Parse() コマンドは変数 YCols[1] を解析するときに余分なスペースを追加します。その際、シミュレート プラットフォームは名前を探しているため列が存在しないと判断します。余分なスペースあり。 YCols[1] を評価すると、上記のような列名「AA BBBB CCC(dd)」が得られます。 ただし、Parse(YCols[1]) を実行すると、Eval() が実行する実際のコードは、「AA BBBB CCC( d - d )」のような名前の列を使用します。これは正しい列ではありません。これは、Parse() が括弧と文字「d」の間に余分なスペースを挿入し、「-」ダッシュ文字の周囲に余分なスペースを挿入するためです。 これは、上記のコードの Parse() 部分だけを実行したときの埋め込みログの出力です。
report_of_interest[数値列ボックス( 8 )] << Simulate(
NBS番号、
ランダムシード( RSnum )、
アウト( AA BBB CCC( d - d ) )、
In( :シミュレートされた Y )
)
これを回避する方法、または余分なスペースを追加しない解析用の文字列を構築する別の方法はありますか?
解析用の文字列を作成する次の方法も試しましたが、これにより、シミュレート プラットフォームが余分なスペースを含む列名を検索することになります。
str = Eval Insert(
"report_of_interest[Number Col Box( 8 )] << Simulate(
NBSnum,
Random Seed( RSnum ),
Out("
);
str2 = Eval Insert( " ),
:Simulated Y )
)" );
Eval( Parse( str || ":" || Char( Eval( YCols )[1] ) || str2 ) );JSL は余分な空白を気にしないことはわかっていますが、JMP は列名に関しては気にします。
ご意見/アイデアは大歓迎です。
ありがとう!、
DS