如何按時間序列按小時匯總資料?大家好,JMP 社區,
我正在處理一個包含分鐘等級時間戳的時間序列資料集(例如 2025-07-12 14:03:00 )。我嘗試將數據按小時匯總到一起,以便直觀地呈現一天中的趨勢。
我嘗試將 Group 函數與 Hour(DateTime) 結合使用,但不確定在總計表或圖表中是否正確應用。另外,想知道有沒有更簡潔的方法在聚合之前將時間戳四捨五入到最接近的小時數?
任何有關每小時分組的提示或腳本範例都會非常有用。
謝謝!
約翰·瑪麗
基礎資料分析與建模資料存取回覆:如何按時間序列按小時匯總資料?我會建立一個新的列,從日期時間列中刪除分鐘和秒。您可以使用 JMP 提供的快速公式來創建它,但需要一些公式。首先,您可以建立日期列

然後創建小時列

並結合這些

接下來開啟已建立的列,變更格式,並將公式修改為將小時數乘以「以小時為單位」(1)(相當於 60*60,即以小時為單位的秒數,這基本上就是 JMP 管理時間的方式)。最終公式如下所示
In Hours(:"Hour[Column 1]"n) + :"Date[Column 1]"n

當然,您也可以在一列中完成所有操作,只需從“小時”列(記得將其轉換為小時數)和“日期”列中選擇公式,然後合併即可。最終公式如下所示(並非唯一選項):
:Column 1 - Time Of Day(:Column 1) + In Hours(Hour(:Column 1))
其中:第 1 列是您擁有的日期時間列

您也可以從日期時間中扣除秒和分鐘(記得將它們轉換為秒),您應該會得到類似的結果
:Column 1 - Second(:Column 1) - Minute(:Column 1)*60

了解更多關於 JMP 中日期時間的資訊:使用 JMP > 公式中 JMP 函數的參考 > 日期時間函數
回覆:如何按時間序列按小時匯總資料?JM:
我大量使用來自過程資料歷史學家的感測器時間序列資料。
您的資料是均勻分佈的嗎?例如,一分鐘的平均值或快照,還是時間戳記可能來自一小時內的任何時間?您想將數據匯總為每小時平均值,還是僅將時間戳四捨五入到最接近的小時數?
無論哪種情況,最簡單的方法是:右鍵單擊時間戳列 > 新公式列 > 變換 > 舍入 > 最近 1 小時
建立四捨五入的時間戳記後,建立每小時平均值:表格 > 摘要 > 群組:四捨五入的時間戳記;新增包含所需統計資料的資料列 < 表格摘要>
很高興進一步討論這個問題。
回覆:如何按時間序列按小時匯總資料?@markschahl
非常舒服! !
好的 : )
回覆:如何按時間序列按小時匯總資料?啊, 日期增量()在後台完成這項工作。
相同的函數在 GraphBuilder 中進行分箱 - 非常有用!
如果您對一直延伸到公元 0 年的軸感到好奇:
不幸的是,日期增量()函數不會這樣處理缺失值;它們會被四捨五入為 0。

嵌套/分箱時間/日期軸的一些改進+錯誤修復 & TS-00147884。
回覆:如何按時間序列按小時匯總資料?解決方法是排除錯誤的行,
將公式改為
tmp = Date Increment( :"date-time"n, "Hour", 0 );
If( tmp == -60084288000,.,tmp); // "0" = -60084288000
... or use -60084288000 as 缺失值程式碼 via the column properties:

回覆:如何按時間序列按小時匯總資料?我只是想知道:

將日期和時間四捨五入到分鐘,就不會出現遺漏的問題。
解釋:

....無日期增量()
因此,另一種方法是四捨五入到小時數:

:)