結合されたデータテーブルが値別に表示されるようにレポートウィンドウを設定する方法JMP の内部動作を再作成しようとしています。分布レポートで結合テーブルを実行すると、結果のテーブルの最初の列に by 値がリストされます。 独自のネストされたテーブル構造を作成すると、結果として得られる結合データ テーブルの最初の列が取得されません。 2 つの同一の結合データ テーブルを生成するようにウィンドウ構造を定義するにはどうすればよいですか?
このサンプル スクリプトを実行して違いを確認してください。
/* Open a sample data table */
dt = Open( "$SAMPLE_DATA\Big Class.jmp" );
/* Generate the Distribution with a By variable */
dist = dt << Distribution( Continuous Distribution( Column( :height ) ), By( :sex ) );
/* Create the combined data table of Summary Statistics */
Report( dist[1] )["Summary Statistics"][Table Box( 1 )] << Make Combined Data Table;
TestWindow = new window("Test with multiple tables",main = v list box());
main << Append(
Outline Box( "Distributions sex=F",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{60.8888888888889, 3.61189031311679, 0.851330711102296, 62.6850396850604, 59.0927380927173, 18, 1096, 13.0457516339869,
5.93193664562977, 0}
)
)
)
)
)
);
main << Append(
Outline Box( "Distributions sex=M",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{63.9090909090909, 4.3084533840777, 0.918565347870119, 65.8193521238087,
61.9988296943731, 22, 1406, 18.5627705627705, 6.7415344558826, 0}
)
)
)
)
)
);
TestWindow["Summary Statistics"][Table Box( 1 )] << Make Combined Data Table;Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法これを回避するには、結合データ テーブルを作成する関数を作成し、その関数を TableBox のコンテキスト メニュー スクリプトとして実行するように設定します。 詳細については以下を参照してください。 必要に応じて、同等の JSL メッセージを使用して、他のコンテキスト メニュー項目の一部を (少し作業するだけで) 追加し直すことができることに注意してください。
customMakeCombinedDataTable = Function({},
// Get a list of all of all invisible columns
collapsedCols = TestWindow <<XPATH></XPATH>

Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法うーん、問題はまだ残っています。レポートウィンドウで右クリック --> 結合データテーブルを作成しても、どちらも機能せず、同じ値が繰り返されるだけの列を追加することに行き詰まっています。 それは避けたいと思っていました。Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法JMP プラットフォームで生成された TableBox は内部で By グループを追跡しますが、カスタム JMP ウィンドウを使用する場合は自分で設定できるものではありません。
何かを見逃した場合に備えて、開いたままにしておいてください。
Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法ジャスティン、ご回答ありがとうございます。どちらも効果があるようです。もし誰ももっと簡単な解決策を提案してくれなかったとしても、あなたは間違いなく私を助けてくれたことになります。 それで、もう少し質問を開いたままにしておきますが、nobidy がより良い答えを思いついた場合は、あなたの答えを回答としてマークします。
JMP は内部で何か他のこと (解析されるテーブル プロパティの設定など?) を行っているように思えます。このトリックがスクリプト インターフェイスに公開され、ここで適用できることを期待しています。
Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法こんにちは@ポールディーン、
この問題に対処するために私が見つけた 2 つのアプローチがあります。
最初のアプローチは 2 つの方法の中でより単純ですが、By 変数値を要約統計テーブルの列として配置する必要があります。 以下の例では、追加の「性別」列を参照してください。この列は最初は折りたたまれていますが、結合されたデータ テーブルを作成するために一時的に折りたたまれません。 詳細についてはコメントを参照してください。
TestWindow = new window("Test with multiple tables",main = v list box());
main << Append(
Outline Box( "Distributions sex=F",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box( "Sex", Repeat( {"F"}, 10 ), <<VISIBILITY></VISIBILITY>
この方法を使用した結果のテーブルは次のとおりです。

2 番目の方法は、OutlineBox から By value 情報を取得し、テーブルを連結することです。 この方法では、既存のアウトライン ボックス/集計統計の設定を変更する必要はありませんが、少し複雑になります。 詳細については、以下のコメントを参照してください。
TestWindow = new window("Test with multiple tables",main = v list box());
main << Append(
Outline Box( "Distributions sex=F",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{60.8888888888889, 3.61189031311679, 0.851330711102296, 62.6850396850604, 59.0927380927173, 18, 1096, 13.0457516339869,
5.93193664562977, 0}
)
)
)
)
)
);
main << Append(
Outline Box( "Distributions sex=M",
Outline Box( "height",
Outline Box( "Summary Statistics",
Table Box(
String Col Box("",
{"Mean", "Std Dev", "Std Err Mean", "Upper 95% Mean", "Lower 95% Mean", "N", "Sum", "Variance", "CV", "N Missing"}
),
Number Col Box("",
{63.9090909090909, 4.3084533840777, 0.918565347870119, 65.8193521238087,
61.9988296943731, 22, 1406, 18.5627705627705, 6.7415344558826, 0}
)
)
)
)
)
);
// get all of the tableboxes within a 'Summary Statistics' OutlineBox
tableBoxes = TestWindow << Xpath("//OutlineBox[text()='Summary Statistics']/TableBox");
//Create and insert each data table
dts = {};
For( i = 1, i <= N Items( tableBoxes ), i++,
tempDt = tableBoxes[i] << make into data table( "invisible" );
//set the name of the table to the title of the top outlinebox
tempDt << Set Name( (((tableBoxes[i] << Parent) << parent) << parent) << get title );
Insert Into( dts, tempDt );
);
// Concatenate the tables together, with a source column
dts[1] << Concatenate( Remove( dts, 1 ), Create source column );
// close all of the temporary tables
For( i = 1, i <= N Items( dts ), i++,
Close( dts[i] )
);
結果のテーブルは次のとおりです。

Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法
あなたが投稿したコードだけで、データテーブルを受け取りました。これはあなたが期待しているものではありませんか?
Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法残念ながら、それは私が望んでいることではありません。 私はすでに結合ウィンドウを持っています。 これからは、そこから有用な結合データ テーブルを作成できる機能を顧客に提供したいと考えています。Re: 結合されたデータテーブルを値別に表示するようにレポートウィンドウを設定する方法https://community.jmp.com/t5/Discussions/JSL-Combined-graphs-from-multiple-data-table-and-combined-into-a/mp/17215#M15690