2016-02-12 33 views
0

假設我有一個開始日期和時間「2016-01-09 15:23:26」,並以不同的時間間隔記錄每次測量的日期和時間。自特定日子午夜開始的持續時間

的樣本數據如下:

date   time   date_time   clock 
"2016-01-09" "15:23:26" 2016-01-09 15:23:2 0s (0 seconds)  
"2016-01-10" "23:59:53" 2016-01-09 23:59:53 30987s (~8.61 hours) 
"2016-01-10" "00:04:53" NA     NA 
"2016-01-10" "01:04:55" 2016-01-10 01:04:55 34889s (~9.69 hours) 

如果我嘗試使用lubridate來計算時間,因爲在開始時間分鐘,計算正常工作,但所有的行3(其中的日期爲「2016- 01-10「,時間是」00:04:53「,我試着在網上尋找一些可能的解釋,說明這裏有什麼問題,但沒有用,我錯過了什麼?我的代碼如下:

library(lubridate) 
df$date2 = mdy(df$Date) 
df$time2 = hms(df$Time) 
df$date_time = paste(df$date2, df$time2, sep = " ") 
df$date_time = ymd_hms(df$date_time) 
df$start_time = ymd_hms("2016-01-09 15:23:26", tz="UTC") 
df$clock = as.duration(df$date_time - df$start_time) 

回答

1

當你粘貼日期和時間,因爲第三次不到一個小時,它是n未被ymd_hms()識別

由於您已經擁有POSIXct對象,因此可以直接對它們進行求和。

只需更換:

df$date_time = paste(df$date2, df$time2, sep = " ") 
df$date_time = ymd_hms(df$date_time) 

由:

df$date_time = df$date2+df$time2 
+0

感謝@HubertL;像魅力一樣工作 – Ani