2011-03-10 63 views
1

我走進藏數百個ASCII數據文件,其中的日期和時間是分開列像這樣的:日期轉換查詢

date  time 
1-Jan-08 23:05 

我需要將其轉換爲可用的[R Date對象,減去8小時(從UTC到太平洋的時區轉換),然後將其轉換爲unix時間。我需要這樣做,因爲數據是每晚收集的(從下午5點到次日早上2點)。因此,如果我使用常規的日期/時間格式,它會混淆日子(第1天跨越兩天,實際上它只是數據收集的一個晚上)。我想分開考慮每一天的事件。

使用unixtime將允許我計算每天發生的事件的時間差異(除了unix時間,我可能會保留一個日期字段)。有人可以建議一個有效的方法來做到這一點?

下面是一些數據使用(這是在UTC)

dummy=data.frame(date="1-Jan-08",time="23:05") 

回答

4

在一起粘貼(工作向量化),然後分析,例如

datetime <- paste(dummy$date, dummy$time) 
    parsed <- strptime(datetime, "%d-%b-%y %H:%M") 

您也可以將其指定爲數據框中的列。

編輯:strptime()有一個可選的tz=""參數,您可以使用。

+0

日期仍然是UTC。當我減去小時,它會自動分配一個不正確的時區。我怎樣才能告訴它它是UTC開始的,並且在將它轉換爲unix時間戳之前需要轉換爲PST? – Maiasaura 2011-03-10 20:43:38

+0

加tz =「GMT」,然後做減法 - 如果沒有指定,strptime將使用系統使用的tz,我總是發現這樣做最簡單 – mdsumner 2011-03-10 21:14:31

+0

得到了這部分。在時區轉換方面,我可以做parsed = parsed - 5 * 60 * 60(中央時間減去5小時)?我忽略了其他時區轉換錯誤嗎?是否有更直接的方式從GMT轉到CDT或PST? – Maiasaura 2011-03-10 21:50:58