2012-10-05 17 views
0

我有一個Dataset_1,它只有一些數值,例如幾個月。使用不同日期繪製2個數據集在r中的同一圖上

Day Month Year Value 
10 5 2003 12 
17 5 2003 46 
1 6 2003 23 
16 6 2003 43 
16 10 2003 23 
26 10 2003 12 

和Dataset_2具有用於在同一時間段e.g

Day Month Year Hour Value 
10 5  2003 0:00 13 
10 5  2003 1:00 12 
(...) 
26 10  2003 21:00 12 
26 10  2003 22:00 12 

Dataset_1用於評估Dataset_2定期1小時值。因此,我想將常規時間間隔數據集2與非常規數據集1進行比較。有沒有辦法,可能使用共同的日期標記來繪製Dataset_2的所有時間步,但要讓R在Dataset_2的相應日期繪製Dataset_1的點?

謝謝。

回答

2

你要做的唯一一件事情就是聲明你的日期和時間,確實日期和時間對象:

Dataset_1$timestamp <- strptime(paste(Dataset_1$Day, Dataset_1$Month, 
           Dataset_1$Year, sep="-"), format="%d-%m-%Y") 
Dataset_2$timestamp <- strptime(paste(Dataset_2$Hour, Dataset_2$Day, 
           Dataset_2$Month, Dataset_2$Year, sep="-"), 
           format="%H:%M-%d-%m-%Y") 

然後就可以正常繪製你的數據,而無需採取任何特殊的措施,因爲plot會認識到他們是日期和時間對象。

plot(Dataset_1$timestamp, Dataset_1$Value) 
lines(Dataset_2$timestamp, Dataset_2$Value) 
0

如果你想在x座標上獲得一個簡單的二維圖(日期&)(假設y值爲「value」),那麼你必須首先將實際的數字表示爲&。

因此,您可以定義一個函數,將日期&時間映射到實數(例如unix時間,或者簡單的Hour + 24 * Day + ...),並在Hour中插入0(例如通過執行Dataset_1 $小時< - 0,假設您的數據在數據框中)。

+0

是的,這將是一個2D圖。我編輯了我的問題,因爲我沒有清楚表明我想要繪製來自Dataset_2的所有點,而不僅僅是對應於Dataset_1的點。鑑於這種變化,你的建議是否仍然有效?恐怕我不明白這是怎麼回事,你能擴大一點嗎?謝謝。 – SnowFrog

+0

其實@plannapus給出了一個更好的答案,所以忘了我說的。 – martin

相關問題