Согласованный вывод as.character для объектов даты в R

Внешняя библиотека R использует функцию as.character для преобразования объектов разных классов в строки. Это отлично работает, за исключением моих объектов даты (классы «POSIXlt» и «POSIXt»): обычно вывод выглядит как «2010-11-04 10:43:00» (что идеально), но каждый раз, когда время 00:00 :00 (полночь) компонент времени опущен, и отображается только компонент даты, например «2010-11-04». Но для дальнейшей обработки мне нужен согласованный формат вывода. Так что временная составляющая должна отображаться в любом случае.

Я не могу просто использовать функцию формата, потому что внешняя библиотека выполняет вызов. Поэтому я подумал, что перезапись функции as.character для классов «POSIXlt» и «POSIXt» может быть решением, но я не знаю, как это сделать. Другие идеи приветствуются :)


person user983962    schedule 07.11.2013    source источник


Ответы (1)


Вы можете перезаписать метод as.character для POSIXct объектов, просто создав свой собственный.

as.character.POSIXct <- function(x, format="%Y-%m-%d %H:%M:%S", ...)
format(x, format=format, ...)

Однако в этом случае as.character.POSIXct не существует, поэтому вы фактически ничего не перезаписываете. Однако вы переопределяете метод as.character.POSIXt по умолчанию, который вызывался бы в отсутствие метода POSIXct.

person Hong Ooi    schedule 07.11.2013