我有很多数据集,通常使用 Excel 数据透视表进行查看,但想知道是否可以使用 JMP 中的制表表进行类似的查看。
数据看起来就像所附 Excel 表中的示例。四台设备测试了 5 次,分别是 0h、1h、20h、50h、100h。
每次测量时都会测量参数 1 和参数 2。我想要一个包含三列数据的表格
对于每个设备/时间:数据值、数据值相对于第一次测量的差异、数据值相对于第一次测量的百分比差异。
今天我将非常大的数据集(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))
)
);
哇! 谢谢亚尔莫!
我从没想过 Col Mean 可以那样使用......
如果显然错过了一些基础知识。
非常非常感谢,我在我的脚本中做了一些认真的清理工作:)
/杰西卡