2016-06-20 5 views
0

У меня есть столбец строк в следующем формате:Как преобразовать строку в формат даты в R

Wed, 6 Dec 2000 08:47:00 -0800 (PST) 

Как я могу преобразовать это в формат даты, используя lubridate или другой пакет? Я делал это раньше, но в конце не было -0800 (PST).

спасибо.

+1

использование функция as.Date() – milan

+1

'as.POSIXct (x, format ="% a,% d% b% Y% H:% M:% S% z ", tz =" US/Pacific ")' - см. '? strptime' - * '% z' Подтверждено смещение в часах и минутах от UTC, поэтому на -0800 на 8 часов меньше, чем в UTC. * – thelatemail

+0

Большое вам спасибо @thelatemail. Однако мои данные имеют 500 000 строк. Так что это не strptime немного медленно для этого. Я буду использовать lubridate parse_date_time. Я нашел это очень быстро. – ilyas

ответ

3

Я был в состоянии получить результат, используя strptime() даже не заботясь о наименовании часовых поясов в конце:

> x - "Wed, 6 Dec 2000 08:47:00 -0800 (PST)" 
> strptime(x, "%a, %d %b %Y %H:%M:%S %z") 
[1] "2000-12-07 00:47:00" 

Однако, если вы хотите, чтобы удалить имя часового пояса, вы можете использовать substr() сделать это:

> strptime(substr(x, 1, nchar(x)-6), "%a, %d %b %Y %H:%M:%S %z") 
[1] "2000-12-07 00:47:00" 
+1

Спасибо. Я буду использовать parse_date_time (x = info [, Date], orders = 'a, d b Y H: M: S z', tz = "US/Pacific"). – ilyas

0

Мы можем также использовать parse_date_time

library(lubridate) 
parse_date_time(x, "adbY HMS z", tz = "US/Pacific") 
#[1] "2000-12-06 08:47:00 PST" 

 Смежные вопросы

  • Нет связанных вопросов^_^