コーディングプロパティに2つの数字がありませんでしたこんにちは、
以下のforループは、各列に「coding」プロパティを割り当てながら、各列を反復処理しています。all_colsは対象となる列のリストです。この関数はほぼ意図したとおりに動作します。codingプロパティは正しく割り当てられており、列の最小値と最大値も含まれています。
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
all_cols[y] << Set Property( "Coding", Expr( lims ) );
);
しかし、拡張ログを見ると、「コーディングプロパティに2つの数値がありません」というエラーがall_colsの各列ごとに1回ずつ繰り返されていることに気づきました。数えてみました。
ここで問題が発生します。スクリプトの後半で標準最小二乗法が実行されます。「効果の概要」のリストから効果を削除しようとすると、同じメッセージのエラーボックスが表示されます。下図をご覧ください。右上の「×」をクリックしてボックスを閉じるか、「OK」ボタンを押すと、このボックスは無期限に表示され、JMPのタスクを強制的に終了するまでJMPが使用できなくなります。

JMP式の評価が類似している場合、for each()関数でも同じエラーが発生します。これは、すべての列をハイライト表示し、「属性の標準化」を使用してすべてのプロパティを一括変更するのと同等です。
何が起こっているのか、そしてそれを止めるにはどうしたらよいかについて何か考えはありますか?
品質およびプロセスエンジニアリングRe: コーディング プロパティに 2 つの数値がありませんでしたコーディング列プロパティは、[列情報] ダイアログでは正しいように見えますが、正しくありません。 データ テーブル スクリプトを調べたところ、<< Set Property() メッセージの 2 番目の引数が文字どおりに割り当てられていることがわかりました。 に格納されている値は使用しません。リム. 値を自分で置き換える必要があります。 これが機能する1つの方法です。
For( i = 1, i < N Col(), i++,
lims = Eval List( {Col Min( Eval( Column(i) ) ), Col Max( Eval( Column(i) ) )} );
Eval(
Substitute(
Expr( Column( i ) << Set Property( "Coding", ccc ); ),
Expr( ccc ), lims
)
)
);
このプロパティは、JMP DOE プラットフォームで [テーブルの作成] をクリックすると自動的に追加されます。 テーブルの作成後にこのプロパティを追加する必要があるのはなぜですか?
Re: コーディング プロパティに 2 つの数値がありませんでしたall_cols は列のリストですが、ループによって反復されています。 lims が定義されている行の下では、Expr() を使用して lims を呼び出します。これは役に立ちますか?
Re: コーディング プロパティに 2 つの数値がありませんでしたこの問題に関するその他の注意事項は次のとおりです。
- ループ内の各列に対して << Get Property("Coding") を使用すると、列の最小値と列の最大値のペアが正常に返されます。 これにより、プロパティが正しく割り当てられ、値が設定されていることが確認されます。
- Set Property() のコードを空のスクリプトに分離すると、正常に実行され、拡張ログにエラー通知が表示されません... ただし、以下をお読みください。
- 上記のように、[モデルの適合] ダイアログで別のスクリプトから Set Property() を実行した後でも、エラーが発生します。

Re: コーディング プロパティに 2 つの数値がありませんでしたこれは、スクリプトを実行して Coding プロパティを追加した後に行います。データ テーブルの左上隅にある [テーブル] パネルの赤い三角形をクリックし、[テーブル スクリプトのコピー] を選択します。 次に、新しいスクリプト エディタを開き、スクリプトを貼り付けます。 Set Property 引数を調べます。 2 番目の引数の 2 つの数値を含むリストが表示されます。 そうでない場合は、スクリプトが間違っています。
Re: コーディング プロパティに 2 つの数値がありませんでした
キャッチ抜群!これがテーブル スクリプトの内容です。 そこに必要な値を取得するために、コーディングをいじります。ありがとう、 @マークベイリー!
解決策を投稿するまで、このスレッドを開いたままにします。
Re: コーディング プロパティに 2 つの数値がありませんでしたこれは簡単な修正でした。 私のデータセットで動作することを確認しました!
for( y = 1, y <= N Items( all_cols ), y++,
row() = y;
lims = Eval List( { col min( eval( all_cols[y] ) ), col max( eval( all_cols[y] ) ) } );
Eval( Eval expr ( all_cols[y] << Set Property( "Coding", Expr( lims ) ) ) );
);