【发布时间】:2018-03-03 22:10:02
【问题描述】:
一个数据系列 (nycflights13::flights) 是当地时间,一个是 GMT (nycflights13::weather)。问题是以尊重 DST 的方式合并它们。如果我们查看 1 月 1 日,America/New_York 和 GMT 之间的时差应该是 5 小时。六月应该是4小时。在下面的示例中,我在 1 月和 6 月都得到了 5 小时的差异——unique(fw1$hour.y) 和 unique(fw6$hour.y) 返回 17,但似乎 fw6$hour.y 应该是 16。我做错了什么?
library(tidyverse)
library(lubridate)
library(nycflights13)
weather$time_hour <- with_tz(weather$time_hour, 'GMT')
flights$time_hour <- force_tz(flights$time_hour, 'America/New_York')
fw <- left_join(flights, weather, by=c('origin', 'time_hour'))
fw1 <- filter(fw, origin == 'LGA', month.x == 1, day.x == 1, hour.x == 12)
unique(fw1$hour.y)
fw6 <- filter(fw, origin == 'LGA', month.x == 6, day.x == 1, hour.x == 12)
unique(fw6$hour.y)
【问题讨论】: