2015-04-10 2 views
0

я имел значение даты в столбце, как этотдаты Преобразовать от неизвестного типа фабрики

 2014-08-14 

она превратилась в колонку с этим значением

 1407992400 

, когда я делаю класс по этому колоночному return type factor, теперь я не уверен, как вернуть его вместе, как это было раньше, формат yyyy-mm-dd?

dput(date1) 
    structure(c(26L, 14L, 12L, 1L, 20L, 19L), .Label = c("1406869200", 
    "1406955600", "1407042000", "1407128400", "1407214800", "1407301200", 
    "1407387600", "1407474000", "1407560400", "1407646800", "1407733200", 
    "1407819600", "1407906000", "1407992400", "1408078800", "1408165200", 
    "1408251600", "1408338000", "1408424400", "1408510800", "1408597200", 
    "1408683600", "1408770000", "1408856400", "1408942800", "1409029200", 
    "1409115600", "1409202000", "1409288400", "1409374800"), class = 
    "factor") 

ответ

2

Ну, это, вероятно, было не дата-классифицирован объект, потому что те являются целыми даты смещенные от 1970, так что его, вероятно, является результатом случайного unclass() - Инж с POSIXct-объект.

> as.POSIXct(1407992400, origin="1970-01-01") 
[1] "2014-08-13 22:00:00 PDT" 

Через магию R часовых пояса манипуляций, вы получите обратно свою первоначальную дату:

as.Date(as.POSIXct(1407992400, origin="1970-01-01")) 
[1] "2014-08-14" 

Формата() функция дает/версию UTC UCT то времени Aswell:

> format(as.POSIXct(1407992400, origin="1970-01-01"), "%Y-%m-%d") 
[1] "2014-08-13" 
+0

Я думаю, что мы должны быть осторожны с часовым поясом. –

+2

Эй, те из нас, кто находится на Левом Побережье Другой Стороны Пруда, могут по-прежнему иметь небольшой дневной свет сегодня вечером. –

+0

@BondedDust и Pascal, я устал от этого, и я получаю сообщение об ошибке «Ошибка в as.POSIXlt.character (as.character (x), ...): символьная строка не находится в стандартном однозначном формате« –

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