2015-07-21 59 views
0

我有幾個文件:如何減去R中as.POSIXct中的文件名中的數字?

dir<- list.files("/data/test", "*.img$", full.names = TRUE) 
dir: 
/data/test/data.df_df_fg.20141231.jh.ds.0930.edfr.img 
/data/test/data.df_df_fg.20141231.jh.ds.1030.edfr.img 
/data/test/data.df_df_fg.20141231.jh.ds.1130.edfr.img 

我要提取的文件名日期:

dt <- as.POSIXct(strptime(basename(dir),"data.df_df_fg.%Y%m%d.jh.ds.%H%M.edfr", tz = "GMT")) 
dt: 

[1] "2014-12-31 09:30:00 GMT" 
[2]"2014-12-31 10:30:00 GMT"      
[3] "2014-12-31 11:30:00 GMT" 

我需要的是從dt減去1小時,使我得到:

[1] "2014-12-31 08:30:00 GMT" 
[2]"2014-12-31 09:30:00 GMT"      
[3] "2014-12-31 10:30:00 GMT" 

如果小時爲2014-12-31 24:30:00 GMT,則使其爲23:30:00 GMT,但也將日期減少爲2014-12-30。因爲我們已經在前一天

回答

1

嘗試:

dt-as.difftime(1,units="hours") 
+0

這是非常不尋常的'2430'。這個時間通常以'0030'表示。 – nicola