如何將時間數據列(標稱)轉換為一個單位(月)的連續數據?大家好。
在 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”功能似乎可以解決問題——請參閱隨附的示例文件。