【发布时间】:2016-09-30 19:27:31
【问题描述】:
我有一些来自 Excel 的数字日期数据:
> df <- data.frame(c(42613, 42612, 42614), c(42614.61, 42613.97, 42612.12))
> names(df) <- c("Closetime", "Opentime")
Closetime 和 Opentime 都是 numeric。我想保留OpenTime 中的小时/分钟/秒数据,并将时间'00:00:00' 添加到Closetime 中的每个日期:
> df$Closetime <- paste(as.Date(df$Closetime, origin = '1900-01-01'), c('00:00:00'))
很容易做到Closetime,但是当我尝试在Opentime 上使用lubridate::date_decimal 时,一切都变糟了。
> df$Opentime <- date_decimal(df$Opentime)
> df
Closetime Opentime
1 2016-09-02 00:00:00 42614-08-11 15:36:00
2 2016-09-01 00:00:00 42613-12-21 01:12:00
3 2016-09-03 00:00:00 42612-02-13 22:04:48
如何使Opentime 和Closetime 具有相同的类型/格式?我最终希望能够获得每列中时间之间的差异(以小时为单位),以供参考。
【问题讨论】: