みんな、
フォーラムの多くの例にもかかわらず、「Get As Matrix」機能を動作させることができません。 ツリー関数のおかげで、データ ("Schätzer" = "estimate") を抽出する必要がある正しいデータ テーブルが見つかりました。下の図を参照してください。 NumberColBOX(8) の 4 行のデータが必要です。 「Get As Matrix」では何も抽出されません。
これが私のスクリプトです:
「データファイルを読み込む」
....
drg = Fit Curve( Y( :Pmpp ), X( :time_ZUV ), Fit Biexponential 4P );
dgr_report = drg << レポート;
dgr_report << ツリー構造を表示します。
modell = dgr_report[OutlineBox(2)][TableBox(1)][StringColBox(1)] << Get();
cor_val = dgr_report[OutlineBox(2)][TableBox(1)][NumberColBox(6)] << Get();
SumFit = drg_report[OutlineBox(7)][TableBox(3)][NumberColBox(8)] << get tAs Matrix;
....
「表示モデル、cor_val、SumFit」
「model」および「cor_val」という名前のパラメーターが、OutlineBox (2) から正しく抽出されていることに注意してください。
Tree structure of the expo decay fitExpo Decay Fit のツリー構造
助けていただければ幸いです。
ミカエル
以下は、スクリプト 6_XPathFind.jsl からのコメントです。 JSL Companion、JMP スクリプト言語のアプリケーション、第 2 版.
これは、より多くを学ぶための出発点かもしれません。また、この JMP ブログを検索して、XPath に関するいくつかのディスカッションやプレゼンテーションを見つけてください。
/* XML -> eXstensible Markup Language
XPATH について詳しく知るためのいくつかのリンク
https://en.wikipedia.org/wiki/XPath
https://www.w3.org/TR/xpath.html
https://www.w3.org/TR/xpath/
//セクション 6 - その他の XPath 構文
/* に基づく注記と例https://www.tutorialspoint.com/xpath/xpath_quick_guide.htm
node-name 指定された名前 "nodename" を持つすべてのノードを選択します。JMP のノード名は DisplayBox クラス名です。
OutlineBox、TableBox、StringColBox、NumberColBox、TabBox、TabPageBox、AxisBox、FrameBox など。
/ 選択はルート ノードから開始します
// 選択は、選択に一致する現在のノードから開始します
.現在のノードを選択します
.. 現在のノードの親を選択します
@ 属性を選択
TableBoxの例-名前(クラス名)「TableBox」を持つすべてのノード(表示)を選択します
AxisBox/TextBoxの例-AxisBoxの子であるすべてのtextBox要素を選択します
//node-name 例 - //TableBox は、JMP レポート内のどこにあるかに関係なく、すべての TableBox ディスプレイを選択します
----ワイルドカード----
* 任意のノードに一致するために使用されます。
.コンテキスト内の現在のノードと一致させるために使用されます。
@*任意の属性に一致するために使用されます
----述語---- 選択をフィルタリング/制限するための角括弧内の式
例 [n] [Last()] [@NumberColBoxItem > 20]
----最も便利な文字列関数----
starts-with(string1, string2) 最初の文字列が 2 番目の文字列で始まる場合に true を返します。
contains(string1, string2) 最初の文字列に 2 番目の文字列が含まれている場合に true を返します。
substring(文字列、オフセット、長さ?) 文字列の一部を返します。 セクションは、指定された長さまでのオフセットから始まります。
substring-before(string1, string2) string2 が最初に出現する前の string1 の部分を返します。
substring-after(string1, string2) string2 が最初に出現した後の string1 の部分を返します。
position() ノードの位置を提供します。
last() 現在のノードに関連する最後のノードを選択します。
count も利用できますが、JMP は結果のリストを返し、JMP の項目 (結果) も同様に簡単です
//nodename その名前を持つすべてのボックスを検索するのがおそらく最も便利です
Fの場合カーブ()プラットフォームにはオプションがありますパラメータテーブルの作成、役に立つかもしれません。 iI は Fit[n] オプション (メッセージ) です。
Names Default To Here( 1 );
dt = Open( "$SAMPLE_DATA/Nonlinear Examples/Bioassay.jmp" );
obj = Fit Curve( Y( :Toxicity ), X( :log Conc ), Group( :formulation ) );
obj << Fit Logistic 4P;
ptbl = obj << (Fit[1] << Make Parameter Table);
「絶対」番号で表示ボックスをアドレス指定できますが、階層コンテキストでは相対番号を使用する必要があります。 あなたの例では、OutLineBox(7) に 1 つの TableBox と 3 つの NumberColBoxes しかないため、JMP は 3 つ目の TableBox を見つけることができません。
以下は、マトリックスを抽出するための 4 つの異なるが同等の方法です。 1 番目は絶対番号付けを使用し、2 番目と 3 番目は相対番号付けを使用し、最後はそれを使用します。 xpathタイトルに基づいて NumberColBox を識別する
SumFit = drg_report[Number Col Box(8)] << Get As Matrix;
SumFit = drg_report[Outline Box(7)][1][2] << Get As Matrix;
SumFit = drg_report[Outline Box(7)][Table Box(1)][Number Col Box(1)] << Get As Matrix;
SumFit = (drg_report << xpath("//NumberColBox[NumberColBoxHeader ='Estimate']"))[1] << Get As Matrix;