您得到该错误的原因是因为您的date
变量没有正确的格式。您应该将date
变量转换到一个POSIX类strptime
:
dat$date <- strptime(dat$date, format = '%d%b%y:%H:%M:%S')
后,您可以使用format
从该变量中提取时间:
dat$time <- format(dat$date, "%H:%M:%S")
用于提取日期,它是preferrably使用as.Date
:
dat$dates <- as.Date(dat$date)
这些步骤将给出以下结果:
> dat
date time dates
1 2016-04-15 00:00:04 00:00:04 2016-04-15
2 2016-04-17 00:06:35 00:06:35 2016-04-17
3 2016-04-18 00:05:07 00:05:07 2016-04-18
4 2016-04-18 00:00:56 00:00:56 2016-04-18
5 2016-04-19 00:08:07 00:08:07 2016-04-19
6 2016-04-18 00:00:07 00:00:07 2016-04-18
7 2016-04-22 00:03:07 00:03:07 2016-04-22
替代你可以使用lubridate
包(如在对方的回答也显示):
library(lubridate)
dat$date <- dmy_hms(dat$date)
使用的数据
dat <- read.table(text="date
15APR16:00:00:04
17APR16:00:06:35
18APR16:00:05:07
18APR16:00:00:56
19APR16:00:08:07
18APR16:00:00:07
22APR16:00:03:07", header=TRUE, stringsAsFactor=FALSE)
这些时间戳对应的年份是几年? –
我们说它是2016年 – suresh