Поведение нечетной функции POSIXct в R
Я работаю с типом данных POSIXct в R. В мою работу я включил функцию, которая возвращает две даты POSIXct в векторе. Тем не менее, я обнаружил неожиданное поведение. Я написал пример кода, чтобы проиллюстрировать мою проблему:
# POSIXct returning issue:
returnTime <- function(date) {
oneDay <- 60 * 60 * 24
nextDay <- date + oneDay
print(date)
print(nextDay)
return(c(date, nextDay))
}
myTime <- as.POSIXct("2015-01-01", tz = "UTC")
bothDays <- returnTime(myTime)
print(bothDays)
Операторы печати в функции дают:
[1] "2015-01-01 UTC"
[1] "2015-01-02 UTC"
В то время как оператор print в конце кода дает:
[1] "2014-12-31 19:00:00 EST" "2015-01-01 19:00:00 EST"
я понимаюкакие происходит, но я не понимаю, почему. Это может быть простой ошибкой, которая ускользает от меня, но я действительно запутался. Я не понимаю, почему часовой пояс меняется по возвращении. Класс все еще POSIXct, только часовой пояс изменился.
Кроме того, я сделал то же, что и выше, но только что вернул одну из дат, и часовой пояс даты не изменился. Сейчас я могу обойти это, но хотел посмотреть, есть ли у кого-нибудь понимание моей проблемы. Заранее спасибо!
Спасибо за помощь ниже. Я вместо этого сделал:
return(list(date, nextDay))
и это решило мою проблему с удалением часового пояса.