<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />JMP スクリプトを使用して次のことを実行しようとしています。
- 同じテーブル (STNFAM と VIEW_STATE_ID) 内の 2 つのカテゴリ列のすべての異なる組み合わせによって、テーブル (dt1) 内の 2 つの異なる連続データ列 (TBI と TTR) にワイブル分布を近似します。
- 結果として得られるすべての分布のアルファ パラメーターとベータ パラメーターを抽出し、テーブルに書き込みます。 解析可能な形式でログに出力しても機能します
以下は、レポートで生成された最初のノードの分散パラメータを取得することだけを目的としたスクリプトの現在のプロトタイプです。
******************************************スクリプトの開始
DT1 = 現在のデータテーブル();
距離 = DT1 <<
分布(
By( :STNFAM、:VIEW_STATE_ID )、
継続的配信(
列( :TBI_HRS )、
分布の適合(閾値付きワイブル)
)、
継続的配信(
列( :TTR_HRS )、
分布の適合(閾値付きワイブル)
)
);
// dist がスクリプトの後半で操作できる正当なプラットフォームであるかどうかを確認するテスト
プロパティを表示(距離);
reportDist = dist<<レポート;
//reportDist がスクリプト内で後から操作できる正当なレポートであるかどうかをテストします。
プロパティを表示(reportDist);
//reportDist の最初のノードだけからアルファ パラメーターとベータ パラメーターを抽出できるかどうかをテストします。
alphaParam = reportDist[アウトライン ボックス(1)][テーブル ボックス(3)][数値列ボックス(1)] << Get(1);
betaParam = reportDist[アウトライン ボックス(1)][テーブル ボックス(3)][数値列ボックス(1)] << Get(2);
//抽出されたパラメータをログに出力して、それらが目的の値と一致するかどうかを確認します。
print(alphaParam);
print(betaParam);
************************************************* ***************************スクリプト終了
dt1 に STNFAM と VIEW_STATE_ID の組み合わせが 1 つだけ含まれている場合、このスクリプトは期待どおりに機能します。 「dist」と「reportDist」の両方のプロパティがログに表示され、必要に応じてワイブル パラメーターもログに出力されます。 ただし、STNFM と VIEW_STATE_ID の複数の組み合わせが dt1 に存在する場合、次のエラーが発生し、プラットフォームまたはレポートのプロパティがログに表示されません。
************************************************* **************************ログの開始
/*:
//:*/
DT1 = 現在のデータテーブル();
距離 = DT1 <<
分布(
By( :STNFAM、:VIEW_STATE_ID )、
継続的配信(
列( :TBI_HRS )、
分布の適合(閾値付きワイブル)
)、
継続的配信(
列( :TTR_HRS )、
分布の適合(閾値付きワイブル)
)
);
// dist がスクリプトの後半で操作できる正当なプラットフォームであるかどうかを確認するテスト
プロパティを表示(距離);
reportDist = dist<<レポート;
//reportDist がスクリプト内で後から操作できる正当なレポートであるかどうかをテストします。
プロパティを表示(reportDist);
//reportDist の最初のノードだけからアルファ パラメーターとベータ パラメーターを抽出できるかどうかをテストします。
alphaParam = reportDist[アウトライン ボックス(1)][テーブル ボックス(3)][数値列ボックス(1)] << Get(1);
betaParam = reportDist[アウトライン ボックス(1)][テーブル ボックス(3)][数値列ボックス(1)] << Get(2);
//抽出されたパラメータをログに出力して、それらが目的の値と一致するかどうかを確認します。
print(alphaParam);
print(betaParam);
/*:
'Outline Box' のアクセスまたは評価で予期される文字 arg 1 、Outline Box( 1 ) 'Subscript' のアクセスまたは評価における添え字の問題、reportDist[Outline Box( 1 )]
次のスクリプトでは、/*###*/ でマークされたエラーが発生します。
DT1 = 現在のデータ テーブル();
dist = DT1 << 分布(
By( :STNFAM、:VIEW_STATE_ID )、
継続的配信(
列( :TBI_HRS )、
分布の適合(閾値付きワイブル)
)、
継続的配信(
列( :TTR_HRS )、
分布の適合(閾値付きワイブル)
)
);
プロパティを表示( dist );
reportDist = dist << レポート;
プロパティを表示( reportDist );
alphaParam = reportDist[/*###*/アウトライン ボックス/*###*/(1)][テーブル ボックス( 3 )][
Number Col Box( 1 )] << Get( 1 );
betaParam = reportDist[アウトライン ボックス( 1 )][テーブル ボックス( 3 )][数値列ボックス( 1 )] <<
Get( 2 );
Print( alphaParam );
Print( betaParam );
************************************************* ******************************************ログの終わり
JMP は、「dist」と「reportDist」を正当なプラットフォームとして認識しないようで、コードの最初のセクションの BY 引数によって生成された組み合わせが複数ある場合に報告します。 望む結果を得るために正しい方向を教えてくれる人はいますか?
添付ファイル:
- Subset_Weibull_Fit_Script.jsl (上記のメッセージに示されているスクリプト)
- XSITE_Weibull_Fit_All_STNFAM_1-10-14.jmp の 1_Combo_Subset (スクリプトが期待どおりに動作するテスト テーブル)
- XSITE_Weibull_Fit_All_STNFAM_1-10-14.jmp の 2_Combo_Subset (スクリプトが期待どおりに動作しないテスト テーブル)
ありがとう、
複数の組み合わせがある場合、dist と reportDist は次のようになります。リスト組み合わせの数だけアイテムが含まれます。 これに該当するかどうかは、Is List() 関数を使用して判断できます。 リストがある場合は、N Items() 関数を使用して項目の数を取得し、そこに含まれる項目の数を判断できます。 さらに処理をループに入れることも、結合データテーブル作成メッセージまたは行列に作成メッセージを使用してすべてのパラメータを抽出することが適切な場合もあります。