如何在R中的as.POSIXct中减去文件名中的数字?

时间:2015-07-21 15:43:54

标签: r

我有几个文件:

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 个答案:

答案 0 :(得分:1)

尝试:

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