你好! 我有两个项目日期列表,一个是维护日期,一个是生产日期。 我试图找出每个生产日期,自上次维护日期以来已经过了多长时间。 显然,维护日期的频率远低于生产日期,但维护日期有很多,因此有一个公式来计算此增量会更容易。 有人有什么建议吗?
是的! 我认为这会奏效! 我需要花点时间弄清楚如何把我的桌子放在那里(我是 jmp 的菜鸟
) 但原理看起来是正确的。 谢谢!
这里有 2 个没有日期差异键的数据表。这是你想要的?
Names Default To Here( 1 );
// Create some sample date data tables
dtProd = New Table( "Production Data",
Add Rows( 15 ),
New Column( "Production Date",
Numeric,
"None",
Format( "ddMonyyyy", 12 ),
Input Format( "ddMonyyyy" ),
Set Values(
[3461875200, 3469737600, 3485462400, 3506630400, 3509049600, 3530217600, 3545942400, 3567110400, 3590697600,
3606422400, 3614284800, 3651177600, 3659040000, 3666902400, 3688070400]
)
)
);
dtMaint = New Table( "Maintenance Data",
Add Rows( 4 ),
New Column( "Maintain Date",
Numeric,
"Continuous",
Format( "ddMonyyyy", 12 ),
Input Format( "ddMonyyyy" ),
Set Values( [3444163200, 3528316800, 3603744000, 3689539200] )
)
);
// Create a new column in the Production Data table
dtProd << New Column( "Days since maintenance", Format( "Fixed Dec", 8,0 ) );
// Populate the new column by finding the most recent value of the Maintain Date
// that is less than the current Production Date, and then find the Difference
// in days
For( i = 1, i <= N Rows( dtProd ), i++,
selectionMatrix = dtMaint << get rows where( dtMaint:Maintain Date <= dtProd:Production Date[i] );
dtProd:Days since maintenance[i] = Date Difference(
Max( dtMaint:Maintain Date[selectionMatrix] ),dtProd:Production Date[i], "Day");
);
我无法真正附加数据,因为它是 IP... 但是这两个数据集都在 JMP 表中。
嗨 kevin_c_anderso! 我的问题不一定是找到日期之间的差异,而是我有两个彼此不相关的日期列表,对于一个列表,我需要自另一个列表最近/最近的事件以来经过的时间列表。 列表 A 的条目比列表 B 多,并且两个列表中都没有任何列可以用来加入它们。 我只想为列表 A 中的每个项目找出列表 B 中最近发生的事件是什么,然后我可以计算它们之间经过的时间量。 那有意义吗?
您的数据是否在 JMP 列表或 JMP 数据表中?你能把你的数据样本附加到讨论中吗?
嗯,我似乎无法让它工作...... 可能是因为这些列表是独立生成的,彼此之间没有任何关系(据 JMP 所知)。 我想让我重新构建我的问题:我有 1 个列表,其中包含生产批次、生产日期/时间、生产设备。 在单独的列表中,我有设施设备(与生产设备不同)、设施维护事件、设施维护日期/时间。 它们是两个单独的列表,我没有任何加入方式(无法生成有效的密钥),但我想为每个产品日期/时间找出最近的设施维护日期/时间(我猜是设施维护事件,尽管这些都只是“开/关”事件)。 那有意义吗?
如果您有 2 个日期列表,一个称为 Prod(生产日期),一个称为 Maint(维护日期),您可以使用以下方法获取最后的维护日期。然后使用 Date Difference() 函数,您可以找到天数差异
注意:维护列表/矩阵需要按升序排列。
names default to here(1);
maint={.............};
prod={..............................};
For(i=1,i<=N Rows(prod),i++,
LastMaintDate=loc sorted(matrix(maint),matrix(prod[i]));
DaysDifference = Date Difference(prod,LastMaintDate,"Day");
);
嗨,温斯洛!
JMP 将日期时间跟踪为自 1904 年 1 月 1 日午夜以来的秒数。例如,现在是 3599388994。这使得跟踪时差变得异常容易……它只需要一些算术和一些格式。JMP 格式支持一堆(14 种?)不同的 ISO 日期格式,您甚至可以使用公式或脚本将任何不受支持的日期格式解析为 JMP 信息格式。
将两个列表放在一起可能会遇到更多挑战,这样您才能正确执行所有算术运算。如果您需要任何帮助或有任何疑问,请回复。