複数の列の ID に基づいて平均をサブセット化しますか?複数のデータ列から平均を取得し、別のデータ テーブルにサブセット化する JSL スクリプトが必要です。ただし、平均は複数のカテゴリ識別子でグループ化する必要があります。たとえば、以下のデータ テーブルでは、2 番目の例のテーブルに示すように、SubjectA Group X と Subject A Group y の平均を別々の行にする必要があります。 これは、前の質問と似ています。スクリプトを変更して、複数の列の平均を含めるにはどうすればよいでしょうか。ソース データ テーブルに平均列を作成し、個別にサブセット化する必要がある場合でも、同様に機能します。
ソーステーブルの例:
| 主題 | グループ | データA | データB |
| A | x | 5 | 2 |
| A | y | 0 | 2 |
| A | x | 5 | 0 |
| B | z | 5 | 2 |
| B | x | 5 | 2 |
| B | x | 5 | 2 |
出力テーブルの例:
| 主題 | グループ | データA平均 | データB平均 |
| A | x | 5 | 1 |
| A | y | 0 | 2 |
| B | x | 5 | 2 |
| B | z | 5 | 2 |
Windows で JMP Pro 18 を使用しています。
自動化とスクリプトデータのブレンドとクリーンアップウィンドウズRe: 複数の列の ID に基づいて平均をサブセット化しますか?こんにちは@Mcc99 、
これを行うにはいくつかの方法がありますが、最も簡単な方法の 1 つは、Tabulate プラットフォームを使用することです。
提供されたサンプル データ テーブルを使用すると、少しの JSL でこれを実行できます。
Tabulate(
Add Table(
Column Table( Analysis Columns( :Data A, :Data B ), Statistics( Mean ) ),
Row Table( Grouping Columns( :Subject, :Group ) )
)
);
Tabulate プラットフォームからの対応する出力は次のようになります。

これがまさにあなたが求めているものだと思います。もちろん、統計情報を追加したり、他の方法で集計を実行したりすることもできますが、これがあなたが求めているものだと思います。次に、[完了] をクリックし、赤いホット ボタンのドロップダウン メニューで [データ テーブルにする] を選択して、プラットフォームからデータ テーブルを取得します (JSL を使用してこれをすべて実行することもできます)。
参照した前回の投稿では、代わりに列の式が使用されていたようです。これは私が提案した別の方法ですが、すでに回答が出ているので、その方法を採用する場合は、いつでもその投稿を詳しく確認できます。しかし、Tabulate プラットフォームこそが本当に必要なプラットフォームだと思います。さまざまなグループ化列などを操作して、データがどのように変化するかを確認できます。
これが役に立つことを願っています!
DS
Re: 複数の列の ID に基づいて平均をサブセット化しますか?ありがとうございます。表形式を使うことは考えてもいませんでしたが、列の式よりもスクリプトがずっときれいになります。ただし、表形式テーブルを新しいデータ テーブルとして保存する際に問題が発生しています。上記の表形式スクリプトの後に、以下のスクリプトを追加しました。表形式ウィンドウは開きますが、新しいデータ テーブルは開きません。
<< Make Into Data Table(Outputtable("Average data"));Re: 複数の列の ID に基づいて平均をサブセット化しますか?@mcc99
検討できるもう 1 つのオプションは、[テーブル] > [概要] を使用することです。プレビュー ペインは、特に複数の列でグループ化する場合に、正しい出力が得られることを確認するのに役立ちます。
表 > 概要:

ソーススクリプト:
Data Table( "Data Table Name" ) << Summary(
Group( :Subject, :Group ),
Mean( :Data A ),
Mean( :Data B ),
Freq( "None" ),
Weight( "None" ),
output table name( "Summary of Data Table Name by Subject, Group" )
);
Re: 複数の列の ID に基づいて平均をサブセット化しますか?こんにちは@Mcc99 、
JSL でオブジェクトを正しく参照していますか? 以下のコードを使用すると (例のようなデータ テーブル構造を操作していると仮定)、Tabulate を使用して正しい表形式のデータ テーブルが生成され、指定された名前のデータ テーブルが作成され、Tabulate ウィンドウも閉じられます。
Names Default To Here( 1 );
dt = Current Data Table();
dttab = dt << Tabulate(
Add Table(
Column Table( Analysis Columns( :Data A, :Data B ), Statistics( Mean ) ),
Row Table( Grouping Columns( :Subject, :Group ) )
)
);
dttab << Make Into Data Table( OutputTable( "Average Data" ) );
dttab <<CLOSE window=""></CLOSE>
<P>これが役に立つことを願っています!</P>
<P>DS</P>