2014-10-30 76 views
1

我在將日期轉換爲「小時後」格式時出現問題,我不認爲我需要應用某些更復雜的日期處理方法,但我可能錯了,我希望有人可能知道一個好的解決方案?將數值日期轉換爲小時數,因爲格式爲

我擁有的數據是表格格式,我從文本文件中讀入。 5000行數據的3行示例是;

date1 <- matrix(c(2007,2007,2007, 12,12,12,1,2,3,0.365,0.096,-0.416),nrow=3) 

如打印出:

date1 
     [,1] [,2] [,3] [,4] 
[1,] 2007 12 1 0.365 
[2,] 2007 12 2 0.096 
[3,] 2007 12 3 -0.416 

的第一列是一年,第二個月,第三日。第四列的值是與我的研究相關的指標值。

數據I想匹配,因爲該索引值是在一個稍微奇數格式,小時「1800年1月1日」

ftime <- c(1822548, 1822572, 1822596) 

FTIME可以被打印爲只是一個日期,通過以下功能。

as.Date(ftime/24,"1800-01-01") 
[1] "2007-12-01" "2007-12-02" "2007-12-03" 

我的代碼都採用數值在FTIME匹配的數據,但我似乎無法找出如何格式化新的數據(數據1)轉換成相同的。

我有這樣的感覺,它應該是一個簡單的解決方案,但似乎無法得到它的工作。

總是非常感謝幫助!

+0

我不知道你是否遇到越來越在'date1'日期爲一個字符串像'ftime'或困難另一種方式? – 2014-10-30 13:09:46

+0

我是在ftime格式的date1之後,抱歉不清楚! – Kate2808 2014-10-31 14:53:32

+0

提供的答案是你在找什麼?如果可以,請您接受答案? – 2014-11-24 11:43:35

回答

1

可以使用difftime功能,如果我得到你想要的東西:

#setting the origin 
    myorigin<-as.Date("1800-01-01") 
    #converting date1 to Date objects 
    myDates<-as.Date(do.call(function(...) paste(...,sep="-"),as.data.frame(date1[,1:3]))) 
    #get the results 
    difftime(myDates,myorigin,units="hour") 
    #Time differences in hours 
    #[1] 1822536 1822560 1822584