通常、Excel ピボット テーブルを使用して確認するデータ セットが多数ありますが、JMP の表形式テーブルを使用して同様に確認できるかどうか疑問に思っています。
データは添付の Excel テーブルの例のようになります。4 つのデバイスが 0 時間、1 時間、20 時間、50 時間、100 時間の 5 回テストされます。
各測定ではパラメータ1とパラメータ2が測定されます。3つの列にデータがあるテーブルが欲しいです
各デバイス/時間: データ値、最初の測定に対するデータ値の差分、最初の測定に対するデータ値のパーセント差分。
今日、私は非常に大きなデータセット(10〜100個のパラメータ、数千のデバイス)をJMPにインポートし、データをExcelにエクスポートします。
ピボットテーブルを使用してデータを再編成し、パラメータの変更を示す列を追加するピボットテーブルを作成するため
その後、プロット、劣化分析、相関プロットなどのためにデータをJMPにインポートします。
もちろん、テーブルを分割し、数式を含む新しい列を追加し、これらをスタックし、新しい列の名前を変更するなどのスクリプトを使用して JMP でこれを行うことができますが、これは非常に柔軟性に欠ける方法であり、テスト時間をハードコーディングせずにこれを動的に行う方法は見つかりませんでした。
残念ながら、Excelのピボットテーブルの方がはるかに扱いやすいのですが、Excelに戻ったり戻ったりする必要があるのが気に入りません。
すべてのデータとともに。
これを JMP の表作成機能で実行できるかどうか、何かアイデアはありますか?
いくつかの数式を追加する必要があると思います。その後、次のような表/集計表を作成できます

ゼロ値を計算する列を作成します。 データによっては、より単純な (またはより複雑な) ものを使用できる場合があります。
Col Mean(
If(Col Min(:Time, :Device, :Group, :Batch, :Name) == :Time,
:Value,
.
),
:Device, :Group, :Batch, :Name
);
次に計算列を作成します
:Value / :GroupZero - 1
と
:Value - :GroupZero
以下は、JMP が私に作成したスクリプトです (大幅にクリーンアップして、より堅牢にします)
// Delete column: Column 7
Data Table("Data") << Delete Columns(:Column 7);
// New column: Column 7
Data Table("Data") << New Column("Column 7",
Numeric,
"Continuous",
Format("Best", 12)
);
// Change column info: GroupZero
Data Table("Data"):Column 7 << Set Name("GroupZero") <<
Set Formula(
Col Mean(
If(Col Min(:Time, :Device, :Group, :Batch, :Name) == :Time,
:Value,
.
),
:Device,
:Group,
:Batch,
:Name
)
);
// New column: Column 8
Data Table("Data") << New Column("Column 8",
Numeric,
"Continuous",
Format("Best", 12)
);
// Change column info: Diff to 0
Data Table("Data"):Column 8 << Set Name("Diff to 0") <<
Set Formula(:Value - :GroupZero);
// New column: Column 9
Data Table("Data") << New Column("Column 9",
Numeric,
"Continuous",
Format("Best", 12)
);
// Change column info: Diff to 0perc
Data Table("Data"):Column 9 << Set Name("Diff to 0perc") << Format("Percent", 12, 2)
<< Set Formula(:Value / :GroupZero - 1);
// Change column modeling type: Device
Data Table("Data"):Device << Set Modeling Type("Nominal");
// Change column modeling type: Batch
Data Table("Data"):Batch << Set Modeling Type("Nominal");
// Change column modeling type: Time
Data Table("Data"):Time << Set Modeling Type("Nominal");
// Report snapshot: Data - Tabulate
Tabulate(
Show Control Panel(0),
Add Table(
Column Table(Analysis Columns(:Value), Statistics(Mean)),
Column Table(Analysis Columns(:Diff to 0, :Diff to 0perc), Statistics(Mean)),
Row Table(Grouping Columns(:Device, :Group, :Batch, :Name, :Time))
)
);
おお! ジャーモさん、ありがとう!
まさかコル・ミーンがそんな風に使われるとは思いもよりませんでした...
明らかにいくつかの基本を見逃している場合。
どうもありがとうございます。スクリプト内で本格的なクリーニングが必要です:)
/ジェシカ