2015-07-19 31 views
0

R支持時間從00:00到23:59。有沒有辦法將其更改爲24:00。創建「2012-12-03 24:00」的POSIXct對象使其成爲「2012-12-04 00:00」。對於我的數據集(TMY3),這是有問題的。R中的24:00小時支持

作爲解決方法,我已將「24:00」的所有實例替換爲「23:59」,然後轉換爲POSIXct。現在的問題是,我不能使用幫助函數來提取小時。 23:50和23:00都是23小時。按小時繪製點現在在23小時有兩個數據點。

我有什麼選擇?

+3

您應該以任何形式發佈「數據集」。如果它是一個文本文件,然後發佈足夠的內容來說明問題以及您當前使用的輸入代碼。然後解釋「問題」是什麼。 Midnght是午夜,大會是午夜是第二天的開始。那究竟是什麼問題? –

+1

我懷疑你必須用一個新的父類(例如'POSIX24ct')來定義它,然後寫一個'format.POSIX24ct',它的邏輯是打印24:00而不是00:00。你是否也想讓00:01成爲24:01等等? – Spacedman

回答

0

簡單的答案是,你不能真的這樣做。你當然可以做一個函數來打印一個POSIXECT對象,前一天用24而不是0來打印,但是你所要求的等價於「我能讓50(50)顯示爲40_10(四十) ?」

根據您希望什麼真正喜歡做的事,你可以這樣做ifelse(hour(POSobj)==0,24,hour(POSobj))(您標記lubridate所以我認爲這些功能都是公平的遊戲),或者你可以做到以下幾點,以及...

ifelse(hour(POSobj)==0,gsub(" 00:"," 24:",gsub(as.character(floor_date(POSobj)),as.character(floor_date(POSobj)-days(1)),POSobj)),as.character(POSobj))