如何将时间数据列(标称)转换为一个单位(月)的连续数据?大家好。
在 JMP 中,我处理从 LIMS 系统中提取的稳定性数据。 进行分析时,X 轴上的时间以月为单位。 提取的数据有两种时间“格式”:以月为单位的时间(例如“M-12”或“M-36”)或以天为单位的时间(例如“EOS-968”或“EOS-1011” ). 所有数据都位于同一列中。
我需要继续提供数据才能进行所需的分析。 关于以月为单位的时间,我通常只是通过“搜索和替换”删除“M-”——并将替换留空。 将天数更改为数月需要更多工作。
我自己最初的想法是先删除“EOS-”部分,然后重新计算成月,但由于数据都位于同一列中,我发现很难将两个“数据集”分开,直到它们具有同一单位。
关于如何更轻松地进行此转换,您有什么好的想法吗? 也许需要一个小脚本?
任何帮助是极大的赞赏。
此致
亨利埃特
数据表回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?嗨戴尔。
非常感谢您的帮助。
BR亨利埃特
回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?你好,亚尔莫。
效果很好。 非常感谢您的帮助。
BR亨利埃特
回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?我看到其他类似的想法,附件是我的(没有脚本)。
回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?您不需要将其存储在变量中。
下面的例子。 运行脚本并检查 MonthNumber 的公式:
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
Num(Word(2, :Time, "-"))
,
StartsWith(:Time, "EOS"),
Num(Word(2, :Time, "-"))/30
,
. //if starts with something else than "M" or "EOS"
);
));
然后您可以根据需要修改公式。
回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?你好。
非常感谢您的帮助。 我是 JMP 脚本的新手,所以也许您可以为我指出正确的方向来执行缺失的逻辑。
对于“月逻辑”,我只想删除“M-”部分,所以我认为 Dales 答案中的 Word 函数应该可以解决问题。
对于“天逻辑”,我想删除“EOS-”部分(使用 Word 函数),然后计算从天到月的数字部分。 也许是个愚蠢的问题,但我可以只添加两行代码还是需要以某种方式将其存储在变量中?
谢谢 :)
回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?嗨戴尔。 感谢您的帮助。 据我所知,使用描述的 Word 函数将给我一列连续数据 (yay),但有两种不同的单位(天和月)。
关于如何将天重新计算为月的任何想法,但只对数值以天为单位的行执行此操作?
BR亨利埃特
回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?除了使用 Word() 之外,您还可以使用 Starts With 和 If 语句来确定应该如何计算月份。
下面的脚本将添加占位符值 1(月)和 2(日)。 将它们替换为您的月份计算逻辑
Names Default To Here(1);
dt = New Table("Untitled",
Add Rows(4),
New Column("Time", Character, "Nominal", Set Selected, Set Values({"M-12", "M-36", "EOS-968", "EOS-1011"}))
);
dt << New Column("MonthNumber", Numeric, Continuous, Formula(
If(StartsWith(:Time, "M"),
//month logic here
1
,
StartsWith(:Time, "EOS"),
//day logic here
2
,
. //if starts with something else than "M" or "EOS"
);
));

回复:如何将时间数据列(标称)转换为一个单位(月)的连续数据?“word”功能似乎可以解决问题——请参阅随附的示例文件。