2017-03-23 52 views
0

這裏是我的一個數據列[R獲得與lubridate時間差

7/1/2016 2:53 
7/1/2016 20:56 
7/2/2016 20:58 
7/2/2016 21:57 

我一直在使用lubridate其相當不錯的框架,但我不知道是否有一種方法:1)刪除日期,以便我有時間,所以它是這樣

2:53 
20:56 
20:58 
21:57 

然後還得到了一定的時間差,說下午8:10或20:10所以它這樣

-18:17 
0:46 
0:48 
1:47 

然後可以通過它自己獲得小時或分鐘值。

回答

1

第一轉換列到一個適當的日期時間。
重新設置日期時間以將指定的時間添加回基準日期。
請注意區別。

dat$newdate <- as.POSIXct(dat$V1, format="%d/%m/%Y %H:%M") 
dat$newdate - as.POSIXct(format(dat$newdate, "%F 20:10")) 
#Time differences in mins 
#[1] -1037 46 48 107 

當數據是:

dat <- read.csv(text="7/1/2016 2:53 
7/1/2016 20:56 
7/2/2016 20:58 
7/2/2016 21:57", header=FALSE) 
+0

我怎麼做這與lubridate? – Shah

+0

@Shah - 不知道,我從來沒有用過它。 – thelatemail

+0

我應該發佈另一個問題,詢問如何使用lubridate做到這一點? – Shah

1

隨着lubridate:

library("lubridate") 

dat1 <- dmy_hm("7/1/2016 2:53") 
dat2 <- dmy_hm("7/1/2016 8:09") 

提取小時:分鐘剛:

strftime(dat1, format="%H:%M:%S", tz= "UTC") 

得到的小時和分鐘使用:

hour(dat1) 
minute(dat1) 

操作示例:

dat2-dat1