2010-12-06 86 views
3

我很遺憾,在關於這個簡單問題的互聯網搜索時間被燒壞之後,我來這裏發帖。在R中,如何繪製一天中的日曆時間與日曆日期

我有幾個數據集繪製在R中,每個數據集由兩列數據組成:時間,日期。我通過Rgui在Windows計算機上使用R 2.11.0。

時間是觀察事件的「時間」。作爲一個例子,它被識別爲:

Factor w/ 87 levels "5:53","5:54",..: 84 85 85 85 86 ... 

日期是日曆日期,識別爲:

Class 'Date' num [1:730] 13879 13880 13881 13882 13883 ... 

值被記錄在一個24小時時鐘,H格式的時間:毫米或HH:MM。日期值顯示爲yyyy-mm-dd。

我想繪製時間(y軸)與日期(x軸)。

使用

plot(date,time) 

給出一個準確的外觀圖,但是y軸被標記爲數字因子值(約0至90),而不是所期望的,在時間上排序的所述因子的水平變量。 x軸以所需的人可讀格式標記。

我該如何解決這個問題? R中是否有「時間」格式可以將我的「時間」變量轉換爲?我隨後也想對時間值進行算術運算,並且不介意在繪圖時使用一列值和在數學中使用一列值。

我碰到了一些在R中操作(日期+時間)變量的例子,並將它們轉換成不同的格式。我不相信這是我的問題,因爲我有單獨的時間和日期的字段,並且想要相互對立。

非常感謝您的建議,或者您對網絡資源的指示(在我的位置沒有適當的圖書館或書店)。

回答

1

有可能是一個更簡單的方法要做到這一點,但你總是可以自己貼上y軸。調整下面的ticksAt矢量以找到適合您數據的內容。

Data <- data.frame(date=Sys.Date()+1:10,time=paste(5,41:50,sep=":")) 
with(Data, plot(date,time,yaxt="n")) 
ticksAt <- c(1,3,5,7,9) 
axis(2, at=ticksAt, labels=as.character(Data$time)[ticksAt]) 

?plot.zoo對如何創建漂亮軸註釋,雖然他們中的一些可能是動物園具體一些很好的例子。 ?par也是一個很好的資源。

0

ts和timeSeries是兩個不錯的選擇。
看看
Related

+0

謝謝您的建議。我看了一些我可以在ts上找到的東西(例如http://127.0.0.1:15268/library/stats/html/plot.ts.html,http://www.stat.pitt.edu/stoffer/tsa2 /R_time_series_quick_fix.htm)。我的印象是,這並沒有解決我的問題,這基本上是如何讓y軸標有一天的時間。 (數據似乎用plot()正確繪製,x軸用日曆日期標記。)我仍然需要查看timeSeries以及「Related」發佈中的許多軟件包。我感謝你的建議。 – janus 2010-12-06 07:40:35

0

讓我們假設你有兩個載體,Date類的一個名爲「DT」,另一個名爲「以舊換新」的因素:

x <- paste(as.character(dt[1:2]), as.character(tm)) 
strptime(x, "%Y-%m-%d %H:%M") 
## [1] "2008-01-01 05:53:00" "2008-01-02 05:54:00" 
class(strptime(x, "%Y-%m-%d %H:%M")) 
## [1] "POSIXt" "POSIXlt" 
+0

具有單獨的時間和日期變量是這個問題的一個組成部分,因爲感興趣的主題是調查不同事件的日期時間在日曆年的過程中是如何變化的。我擔心,儘管有能力將它們轉換爲POSIX,但我並沒有把握將這兩者結合爲一個對象的價值。 – janus 2010-12-07 07:38:46

+0

而不是爲時間對象創建自己的函數,一個存在我不知道的類,我認爲你可以使用TimeDateClass來做一個在日期時間變量和截斷到午夜的派生變量之間創建差異,或者創建和輔助將其所有日期部分重新分配到一個通用日期的變量。然後,您將能夠使用內置的y軸標籤的格式化功能。 – 2010-12-07 13:00:28