您得到該錯誤的原因是因爲您的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