我正在 R 中使用 POSIXct 数据类型。在我的工作中,我合并了一个函数,该函数在向量中返回两个 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"
我明白what正在发生,但我不明白为什么。这可能是一个简单的错误,但我确实很困惑。我不明白为什么返回时时区会改变。该类仍然是 POSIXct,只是时区发生了变化。
另外,我做了与上面相同的操作,但只返回了其中一个日期,并且该日期的时区没有改变。我现在可以解决这个问题,但想看看是否有人对我的问题有任何见解。先感谢您!
感谢下面的帮助。相反,我做了:
return(list(date, nextDay))
这解决了我的时区被删除的问题。
From ?c.POSIXct
:
Using c
在“POSIXlt”对象上将它们转换为当前时区,
并且在“POSIXct”对象上删除任何“tzone”属性(即使它们
都标有相同的时区)。
也可以看看here.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)