2014-05-20 75 views
0

我從河流取得化學水數據。通常情況下,樣本日期是每兩週一個星期三。數據記錄在1987年開始,到2013年結束。r中多個日期的difftime

現在,我想重新檢查數據內是否有任何不一致,即如果樣品真的每14天拍攝一次。爲了這個任務,我想使用r函數difftime。但我不知道如何爲多個日期做到這一點。

下面是一些數據:

Date      Value 
1987-04-16 12:00:00  1,5 
1987-04-30 12:00:00  1,2 
1987-06-25 12:00:00  1,7 
1987-07-14 12:00:00  1,3 

你能告訴我如何在這種情況下,或沒有工作的其他功能正常使用功能difftime。結果應該是14天內採樣和/或真假之間的天數。

感謝你們提前。任何谷歌福是無濟於事!

+0

你的日期數據是哪一類? 'POSIXt'?很難說沒有[可重現的例子]怎麼辦(http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example)。看起來你可以在日期欄中使用'diff'。全部解決方案可能是:'all(diff(diff(dat $ Date))== 0L)' –

+0

或者'table(diff(dat $ Date))'可能更有用於獲得分佈的想法的採樣間隔。 – Miff

回答

1

假設您的data.frame被命名爲dd,您需要驗證Date列正在被視爲日期。大多數時候R會將它們讀爲一個字符,並將其轉換爲data.frame中的一個因子。如果class(df$Date)是「性格」或「因子」,運行

dd$Date<-as.POSIXct(as.character(dd$Date), format="%Y-%m-%d %H:%M:%S") 

然後你就可以這麼簡單diff()得到天的時間差

diff(dd$Date) 
# Time differences in days 
# [1] 14 56 19 
# attr(,"tzone") 
# [1] "" 

,所以你可以檢查哪些是超過14天。