如何创建具有自定义日期/班次的公式列?我正在研究与轮班结构相关的分析。我们每班工作 12 小时。这意味着我们的工作时间为上午 7 点至晚上 7 点(白班,D)和晚上 7 点至早上 7 点(夜班,N)。
目前我有一个公式列脚本如下:
"WW" || Char (Week of Year (:date)) || "." || Char (Day of week (:date) - 1) ||
If (Hour (:date) <= 19 & Hour(:date) >= 7, "D", "N")
看起来它并没有按照我期望的基于此脚本的 bcs 方式工作,每当时间到达凌晨 12 点时,它就会更改为新的一天。
例如:
该脚本会将 12/01/2020 5:49:47 AM 转换为 WW49.2N。应该是WW49.1N。 WW49.2D 在日期和时间为 12/01/2020 7:00:00 AM 时开始 这是因为夜班时间为晚上 7 点至上午 7 点。有人可以建议或建议创建脚本的替代方法吗?
高级统计建模自动化和脚本消费者和市场研究实验设计回复:如何创建具有自定义日期/班次的公式列?您的轮班时间为东部时间上午 7 点至晚上 7 点和北部时间晚上 7 点至上午 7 点。如果第 2 天夜班的时间超过午夜 12 点,JMP 将返回 Day(:date) 将返回第 3 天,因为 JMP 根据午夜测量天数。但是,如果为了计算,我们将 :date 值向后移 7 小时,这意味着夜班将从中午到午夜,并且永远不会跨越 JMP 日边界。
回复:如何创建具有自定义日期/班次的公式列?我看到 jmp 总是会在几秒钟内计算。顺便提一句@txnelson您能解释一下为什么我们需要从实际时间中减去 7 小时(25,200 秒)吗?
脚本条件说中午 12 点到中午 12 点之间的任何时间都是日 ("D")
回复:如何创建具有自定义日期/班次的公式列?它从当前行的日期列的指定值中减去 25200 秒。
25200 = 60 秒/分钟 X 60 分钟/小时 X 7 小时
另外,我在公式中犯了一个小错误。If() 比较应该对第二个元素进行“<”比较,而不是“<=”
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( Hour( correctedDate ) >= 0 & Hour( correctedDate ) < 12,
"D",
"N"
);
回复:如何创建具有自定义日期/班次的公式列?只是想确认,当你说 -小时内( 7 )这是否意味着衬底 7 小时?
回复:如何创建具有自定义日期/班次的公式列?我认为处理此问题的最佳方法是通过减去 7 小时来更正日期时间值,这使得班次与日期值一致
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( Hour( correctedDate ) >= 0 & Hour( correctedDate ) <= 12,
"D",
"N"
);
回复:如何创建具有自定义日期/班次的公式列?这很有趣,因为您可以交换公式中 >= 和 < 的位置:
correctedDate = :date - In Hours( 7 );
"WW" || Char( Week Of Year( correctedDate ) ) || "." || Char( Day Of Week( correctedDate ) - 1 ) ||
If( 0 < Hour( correctedDate ) <= 12,
"D",
"N"
);
我正在处理一个类似的问题,夜班和白班的分配略有不同,这取决于 < 和 <= 符号在 if 语句中的相对位置。如果能在 if 公式中直接使用时间戳就好了(例如,如果时间 > 12:00:00 ...)。也许是这样,我研究得还不够。
但是,我的主要问题是:您如何决定将 < 和 <= 符号放在哪里?当然,每班次平均分配 12 小时很重要,但这可以通过两种配置来实现(< 在 <= 之前,以及 <= 在 < 之前)。
回复:如何创建具有自定义日期/班次的公式列?晚上 7 点是新班次的开始时间,即 hour() 19。由于我们采用 7 小时的偏移量,因此开始夜班的 Hour() 值是 19-7,即 12。如果比较结果为 <=,则恰好为 12 的时间值将被视为白班。
回复:如何创建具有自定义日期/班次的公式列?谢谢,我后来在修改自己的文件时才意识到这一点——当然,是在我发了那个不太深思熟虑的问题之后。谢谢你的耐心。