在R中为nycflights13数据集的机场代码分配时区
解决nycflights13机场时区匹配问题
nycflights13包内置的airports数据集确实包含机场时区信息(存储在tz列),你可以通过两次左连接操作,把出发地、目的地对应的时区匹配到自己的数据中,具体操作如下:
步骤1:加载所需工具包
先确保安装并加载相关包:
# 未安装过的话先执行安装 install.packages(c("nycflights13", "dplyr")) # 加载包 library(nycflights13) library(dplyr)
步骤2:准备你的数据集
用你提供的示例数据创建数据框:
your_data <- tibble( origin = c("EWR", "LGA", "JFK", "JFK", "LGA", "EWR"), dest = c("IAH", "IAH", "MIA", "BQN", "ATL", "ORD") )
步骤3:匹配时区信息
通过两次left_join分别关联出发地和目的地的时区,并重命名时区列避免混淆:
data_with_timezones <- your_data %>% # 匹配出发地时区 left_join(airports %>% select(faa, origin_tz = tz), by = c("origin" = "faa")) %>% # 匹配目的地时区 left_join(airports %>% select(faa, dest_tz = tz), by = c("dest" = "faa"))
查看最终结果
运行后即可得到带有时区字段的数据集:
print(data_with_timezones)
输出示例:
# A tibble: 6 × 4 origin dest origin_tz dest_tz <chr> <chr> <chr> <chr> 1 EWR IAH America/New_York America/Chicago 2 LGA IAH America/New_York America/Chicago 3 JFK MIA America/New_York America/New_York 4 JFK BQN America/New_York America/Puerto_Rico 5 LGA ATL America/New_York America/New_York 6 EWR ORD America/New_York America/Chicago
处理完成后,origin_tz和dest_tz就是可以直接用于图表映射的时区字段了。
内容的提问来源于stack exchange,提问作者Kat F
相关产品推荐
相关产品推荐

