Как превращать колонну в дату в определенный формат?

У меня есть массив в R, с данными twitter, и одна из колонн обладает этим форматом даты "Sun Jun 07 15:26:57 +0000 2015" прочитанный как текст. Как могла бы читать эта колонна в формате даты в R? Уже я протестировал несколько формул, но во всех у меня выходит NA.

2
задан 27.06.2018, 13:45
2 ответа

С as.Date() ты можешь устанавливать формат ввода. Для твоего примера Г©ste serГ - в: "%a %b %d %H:%M:%S %z %Y", а именно ограниченное имя dГ - в недели, ограниченное имя месяца, dГ - в, час, минута, секунда, часовая зона и aГ±o. А именно она conversiГіn podrГ-схвати делать ее asГ-:

as.Date("Sun Jun 07 15:26:57 +0000 2015",
        format = "%a %b %d %H:%M:%S %z %Y")

Замечает: деталь форматов ты можешь консультировать это в помощи рутины strptime()

Однако, есть добавочная проблема: она localizaciГіn цепи. Из-за текста Sun мы можем понимать, что estГЎ в inglГ©s, однако, возможно, что мы обрабатываем цепь в атмосфере dГіnde она localizaciГіn, он в espaГ±ol, из-за которого она conversiГіn, не funcionarГ - в, так как формат, хотя приведенный в соответствие, он принимает ее localizaciГіn нашей sesiГіn и не та данных. Это может случаться fГЎcilmente, если мы заменяем Sun Dom, а именно "Sunday" в "Воскресенье" и тестируем делать ее conversiГіn. Чтобы это решать необходимо изменять ее localizaciГіn настоящий ее sesiГіn следующей формы:

# Obtenemos y guardamos la localización actual
locale <- Sys.getlocale(category = "LC_TIME")

# configuramos la localización adecuada (en este caso inglés)
Sys.setlocale("LC_TIME", "English")

# Ahora si hacemos la conversión
as.Date("Sun Jun 07 15:26:57 2015", format = "%a %b %d %H:%M:%S %Y")

# Restauramos la localización inicial
Sys.setlocale("LC_TIME", locale)

А, альтернатива состоит в том, чтобы использовать пакет lubridate, которые позволяют конфигурировать ее localizaciГіn в той же самой conversiГіn:

library(lubridate)
parse_date_time("Sun Jun 07 15:26:57 +0000 2015", "a b d H:M:S z Y", locale = "English")
0
ответ дан 20.11.2019, 07:41

Самое вероятное состоит в том, чтобы ты получил NA из-за языка дат, что ты считаешь предопределенными

#usa para cambiar el idioma de las fechas a ingles
Sys.setlocale("LC_TIME", "English")

, сейчас ты можешь использовать

#Para dar formato de fecha
as.Date("Sun Jun 07 15:26:57 +0000 2015",format="%a %b %d %H:%M:%S %z %Y")
#A toda la columna, eso si tienes un data frame
datos$columna<-as.Date(datos$columna,format="%a %b %d %H:%M:%S %z %Y")
0
ответ дан 20.11.2019, 07:41