以下是我的一个数据框
中的列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 pm或20:10所以它就像这样
-18:17
0:46
0:48
1:47
然后能够自己获得小时或分钟值。
答案 0 :(得分: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)
答案 1 :(得分:1)
使用lubridate:
library("lubridate")
dat1 <- dmy_hm("7/1/2016 2:53")
dat2 <- dmy_hm("7/1/2016 8:09")
提取小时:min just:
strftime(dat1, format="%H:%M:%S", tz= "UTC")
获得小时和分钟使用:
hour(dat1)
minute(dat1)
操作示例:
dat2-dat1