フィルターを使用した要約テーブルを作成するスクリプトこんにちは、みんな
数値列 (VAL1、VAL2) と文字列 (CATEG1、CATEG2、CATEG3) を含むデータ テーブルがあります。
「CATEG1,23」ごとにグループ化された各数値の平均値をレポートする集計表を作成するスクリプトを作成したいと考えています。これは簡単に実行できます:
Data Table( "MyTable" ) <<
Summary(
Group(
:Lot,
:Name( "CATEG1" ),
:Name( "CATEG2" ),
:Name( "CATEG3" ),
),
Mean( :VAL1),
Mean( :VAL2),
Freq( "None" ),
Weight( "None" ),
)
ただし、CATEG1、2、3 に従って結果をフィルタリングすることも好みます。たとえば、CATEG1=="Standard" の結果のみを含めます。
残酷に「where」句を挿入しようとしましたが、うまくいかないようです
where(:CATEG1 == "Standard")
これは対話的に簡単に実行できることはわかっていますが、スクリプトを使用して実行したいと考えています。
ありがとう
EV1976
データの探索と視覚化マスカスタマイゼーションRe: フィルター付きの集計テーブルを作成するスクリプトフィルタリングとは、他の行を削除したいということですか? このような場合は:
サンプル テーブルとして Big Class.jmp を使用します。 have :sex 値が "M" の行のみを集計テーブルに残す
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
wait(1);
dt_summary = dt << Summary(
Group(:age, :sex),
Mean(:height),
Mean(:weight),
Freq("None"),
Weight("None"),
Link to original data table(0)
);
wait(1);
dt_summary << Delete Rows(dt_summary << Get Rows Where(:sex != "M"));
tabulate を使用することも良い選択肢かもしれません。 ローカル データ フィルターを使用するか、Where を直接追加できます (ここで行っていること)
Names Default To Here(1);
dt = Open("$SAMPLE_DATA/Big Class.jmp");
wait(1);
tab = dt << Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Analysis Columns(:height, :weight), Statistics(Mean)),
Row Table(Grouping Columns(:sex, :age))
),
Where(:sex == "M")
);
Scripting index には非常に優れた提案があります。
行を削除:

行を取得する場所:

場所を選択:

Re: フィルター付きの集計テーブルを作成するスクリプトどちらのソリューションも私にとってはうまくいきます。
「集計」オプションは私のニーズに完全に適合します
どうもありがとうございます
EV1976