你好,
我是 JMP 脚本的新手,并且可能很容易遇到问题。
我堆叠了实验数据,包括带有变量、值、单位、日期和时间的列。
我想添加一个新列相对时间(如示例中所示)。
但我希望它能够计算从特定阶段 X 开始的相对时间(例如所附示例中的 102)。
实验数据有不同的长度,所以我想制作一个脚本来创建相对时间列,通过减去阶段 X 的开始时间来调整时间零。
(实验可能会持续数天,有许多阶段和变量 - 有时我有超过百万行)
因为测量可以跨越多天,所以您应该创建新的列,将 DATE 和 TIME 组合在一起(您可以将它们相加)以避免在日期变化时出现问题。
之后你可以使用这样的公式(:DATETIME 是你应该创建的新列)。 这期望您需要阶段 102 的最小日期时间值:
:DATETIME - Min(:DATETIME[Loc(Current Data Table()[0, {"VARIABLE", "VALUE"}], {"phase", 102})]);Min(:TIME[Loc(Current Data Table()[0, {"VARIABLE", "VALUE"}], {"phase", 102})]);有点复杂,你应该花一些时间看看它在做什么。 Scripting Index 很可能对此有所帮助。 如果需要,我还可以更详细地解释它。 您还可以使用更容易理解的 Get Rows Where 替换 Loc 函数:
Current Data Table() << Get Rows Where(:VARIABLE == "phase" & :VALUE == 102);
但在某些情况下可能会更慢。