2016-01-13 4 views
-1

У меня есть следующий вектор символов, который содержит дату/время. Я хочу, чтобы преобразовать их в формат даты, и я попытался следующие методы: as.Date() и as.POSIXct()Как преобразовать нижнюю строку в качестве даты-времени в R?

time <- c("Oct 01,2015 15:38:31 ", "Oct 05,2015 11:07:14", "Oct 11,2015 14:15:51 ", "Oct 11,2015 14:19:53 ", "Oct 12,2015 11:23:28", "Oct 19,2015 16:32:51 ") 

    #as.Date() is skipping the time part 
time_1<-as.Date(time,"%b %d,%Y %H:%M:%S") 
time_1 
    [1] "2015-10-01" "2015-10-05" "2015-10-11" "2015-10-11" "2015-10-12" "2015-10-19" 


#POSIXct is showing an error 
time_2<-as.POSIXlt(time,"%b %d,%Y %H:%M:%S") 

as.Date() функция пропуска часть времени и POSIX бросает ошибку (что очевидно).

Как преобразовать приведенную выше строку в качестве правильной даты + формат времени?

+4

Просто добавьте формат '=' в 'as.POSIXlt'. Пожалуйста, прочитайте страницу справки. –

+0

Вы можете использовать 'strptime (time, format ="% b% d,% Y% H:% M:% S ")' –

ответ

2

Мы можем указать format в обоих as.POSIXlt и as.POSIXct

as.POSIXlt(time,format="%b %d,%Y %H:%M:%S") 
#[1] "2015-10-01 15:38:31 IST" "2015-10-05 11:07:14 IST" 
#[3] "2015-10-11 14:15:51 IST" "2015-10-11 14:19:53 IST" 
#[5] "2015-10-12 11:23:28 IST" "2015-10-19 16:32:51 IST" 

Без указания format, функция угадывает "%b %d,%Y %H:%M:%S" как часовой пояс (tz). Второй аргумент tz по формуле по умолчанию в ?as.POSIXct

as.POSIXct(x, tz = "", ...) 
Смежные вопросы