大家好,
我有一位在汽车行业工作的客户与供应质量工程师一起工作。 他们有一个很大的 PPAP(生产零件批准流程)电子表格,其中包含零件编号列、其他一些分类列、显示暂定批准日期的列、显示实际批准日期的列以及手动输入的列描述错过暂定日期的原因。 客户的目标是能够:
1) 预测即将到来的零件编号是否将在暂定日期之前实际获得批准
2) 可视化零件编号是否低于或高于其暂定批准日期(多少天)
我想知道是否有人有一个有点像我描述的电子表格的样本数据集? 我很难找到相关的数据集。 似乎一旦我有了 JMP 表,我就可以在可靠性/生存菜单中演示文本浏览器、图形生成器和一些平台(可能需要反转审查才能使其工作)。 还有其他建议吗?
最好的,
克洛维斯
@cweisbart您可以考虑在线访问AIAG 的 PPAP 文档. 如果与您一起工作的人是汽车行业的,那么这很可能就是他们正在使用的文档。 当供应该行业的半导体人员需要执行测量系统分析时,我有过类似的经历(相同的想法,不同的标准文件)。
谢谢伊恩,前几天我最终创建了一张与您的非常相似的表格。 唯一缺少的是手动输入的文本数据。 使用一些常用术语作为 DateDifference 响应的预测变量会很酷。 但我想在演示期间只拥有多个表。 与此类似的表格用于演示日期操作和图形/表格,然后类似于 Chips JMP 文件以显示文本浏览器的好处。
当然,模拟数据很容易,然后对其进行调整以支持有趣的叙述。 这可能会帮助您展示您提到的一些简单的东西。 不用说,这是相当旧的代码:
NamesDefaultToHere(1);
// *************************************************************************************************
// Change me!
// *************************************************************************************************
nr = 100; // Number of rows
earliestDate = DateDMY(1, 1, 2010); // Earliest possible start date
latestDate = DateDMY(31, 12, 2010); // Latest possible start date
processTimeMu = 14; // Mean of random process time (in days)
processTimeSigma = 7; // Sigma of random process time (in days)
// *************************************************************************************************
// Make some simulated 'start date' data (time ordered)
dt1 = NewTable("In",
NewColumn("In Date", Numeric, Continuous,
Formula(RandomInteger(earliestDate, latestDate)),
Format( "ddMonyyyy h:m:s", 22, 0 ),
Input Format( "ddMonyyyy h:m:s", 0 ),
)
);
dt1 << addRows(nr);
Column(dt1, "In Date") << deleteFormula;
dt1 << Sort(By(:In Date), ReplaceTable(1));
dt1 << NewColumn("ID", Numeric, Nominal, Values((1::nr)`));
dt1 << moveSelectedColumns(:ID, ToFirst);
// Make some simulated 'end date' data (don't allow the end date to be earlier than the start date)
inVals = Column(dt1, "In Date") << getValues;
processTime = J(nr, 1, Round(RandomNormal(processTimeMu, processTimeSigma), 0); );
processTime[Loc(processTime <= 0)] = 0;
outVals = inVals + InDays(processTime);
dt2 = NewTable("Out",
NewColumn("ID", Numeric, Nominal, Values((1::nr)`)),
NewColumn("Out Date", Numeric, Continuous,
Values(outVals),
Format( "ddMonyyyy h:m:s", 22, 0 ),
Input Format( "ddMonyyyy h:m:s", 0 ),
)
);
// Join dt1 and dt2
dt3 = dt2 << Join(
With( dt1 ),
SelectWith( :ID, :In Date ),
Select( :Out Date ),
By Matching Columns( :ID = :ID ),
Drop multiples( 0, 0 ),
Include Nonmatches( 0, 0 ),
Preserve main table order( 1 ),
Output Table( "In and Out Dates" )
);
// Add a column for the process time
dt3 << New Column( "Process time in days",
Numeric,
"Continuous",
Format( "Best", 12 ),
Formula( DateDifference( :In Date, :Out Date, "Day" )),
);