Преобразовать коэффициент в POSIXct

У меня есть дата из SQL-запроса, который приходит как фактор, и я хотел бы сделать это POSIXct

f<- as.factor("01/03/2014 20:59:30")
f
class(f)
po<-as.POSIXct(f)
po

Результаты

> f<- as.factor("01/03/2014 20:59:30")
> f
[1] 01/03/2014 20:59:30
Levels: 01/03/2014 20:59:30
> class(f)
[1] "factor"
> po<-as.POSIXct(f)
> po
[1] "0001-03-20 LMT"

Вы можете увидеть "0001-03-20 LMT" не правильно. Знаете ли вы, как преобразовать этот фактор в POSIXct?

Спасибо

2 ответа

Решение

Вам просто нужно указать формат, так как ваша строка даты / времени находится в очень нестандартном и даже неоднозначном формате:

r> as.POSIXct(f,format='%d/%m/%Y %H:%M:%S');
[1] "2014-03-01 20:59:30 EST"

См. Документацию по адресу http://stat.ethz.ch/R-manual/R-devel/library/base/html/as.POSIXlt.html.

Вы можете сделать это намного проще, используя lubridate

library(lubridate)

# month-day-year hour-minute-second
mdy_hms(f, tz="EST")
[1] "2014-01-03 20:59:30 EST"
Другие вопросы по тегам