安装.包( ” 卢茨 ” )
# install.packages(“devtools”)
开发工具 :: 安装github( ” ateucher/lutz公司 ” )
图书馆( 卢茨 ) tz查找单词( 49.5 , - 123.5 , 方法 = ” 快速的 ” ) # >[1]“美洲/温哥华” tz查找单词( 49.5 , - 123.5 , 方法 = ” 精确的 ” ) # >[1]“美洲/温哥华” tz查找单词( 纬度 = c(c)( 48.9 , 38.5 , 63.1 , - 25 ), 离子 = c(c)( - 123.5 , - 110.2 , - 95 , 130 )) # >[1]“美国/温哥华”“美国/丹佛”“美国/Rankin_Inlet”
# >[4]“澳大利亚/达尔文”
图书馆( 平方英尺 ) 图书馆( ggplot2 ) # 这需要ggplot2的开发版本
# 从包含的state.center数据集创建sf对象:
pts(点) <- 重叠(seq_along( 状态.中心 $ x个 ), 功能 ( 我 ) { st点(c( 状态中心 $ x个 [ 我 ], 状态.中心 $ 年 [ 我 ])) }) 状态中心sf <- st_sf(st_sfc( pts(点) )) # 使用tz_lookup_sf查找时区
状态中心.sf $ tz(赫兹) <- tz_查找( 状态中心.sf ) 状态中心.sf $ tz(赫兹) <- tz_查找( 状态中心.sf , 方法 = ” 精确的 ” ) ggplot() + 地理msf( 数据 = 状态中心.sf ,aes( 颜色 = tz(赫兹) )) + 主题_最小() + 坐标_sf( 资料 = 纳 )
图书馆( 服务提供商 ) 状态中心sp <- 作为( 状态中心.sf , ” 空间 ” ) 状态中心sp $ tz(赫兹) <- tz_查找( 状态中心sp ) ggplot(cbind(作为.data.frame(坐标( 状态中心sp )), tz(赫兹) = 状态中心sp $ tz(赫兹) ), 原子发射光谱( x个 = 坐标.x1 , 年 = 坐标.x2 , 颜色 = tz(赫兹) )) + 地理点() + 坐标_固定() + 主题_最小()
# #获取全时区geojson https://github.com/evansiroky/timezone-boundary-builder 下载.file( ” https://github.com/evansiroky/timezone-boundary-builder/releases/download/2019a/timezones-with-oceans.geojson.zip ” , 目标文件 = ” tz.zip公司 ” ) 解压缩( ” tz.zip公司 ” , 外部目录 = ” 数据草稿/分发/ ” )
图书馆( 卢茨 ) 图书馆( 平方英尺 ) 图书馆( 呜呜声 ) 图书馆( 数字播放器 ) tz_满 <- 读取sf( ” 数据原始/dist/componed-with-oceans.json ” ) # 创建一个包含500000 lat/long对的数据帧: 设置种子( 1 ) n个 <- 500000
全部 <- 数据帧 ( 身份证件 = 序列( n个 ), 纬度 = 运行( n个 , - 90 , 90 ), 离子 = 运行( n个 , - 180 , 180 )) 全部(秒) <- st_as_sf( 全部 , 坐标 = c(c)( ” 离子 ” , ” 纬度 ” ), 阴极射线管 = 4326 ) # 用完整的高分辨率时区地图覆盖这些点:
参考_ ll_tz <- 平方英尺 :: st_join(加入)( 全部(秒) , tz_满 ) # 合并那些有重叠时区的
参考_ ll_tz <- 参考_ ll_tz % > % st_set_geometry(设置几何体)( 无效的 ) % > % 分组方式(_B)( 身份证件 ) % > % 总结( tzid公司 = 糊状物( tzid公司 , 崩溃 = ” ; ” )) # 使用“快速”和“准确”方法运行tzlookup,并与
# 时区通过高分辨率地图进行查看:
测验 <- map_df(c( ” 快速的 ” , ” 精确的 ” ), ~ { 时间 <- 系统时间( 测试_ ll_tz <- tz_锁定( ll_sf公司 , 方法 = .x个 , 警告 = 错误的 )) comp公司 <- 参考_ ll_tz $ tzid公司 == 测试_ ll_tz
比赛 <- 总和( comp公司 , na.rm(毫米) = 真的 ) 不匹配 <- 总和( ! comp公司 , na.rm(毫米) = 真的 ) 列表 ( 方法 = .x个 , 时间 = 时间 [ ” 逝去 ” ], 比赛 = 比赛 , 不匹配 = 不匹配 , 精确 = 比赛 / ( 比赛 + 不匹配 ), 参考名称(_N) = 总额(is.na( 参考_ ll_tz $ tzid公司 )), 娱乐(_N) = 总额(is.na( 测试_ ll_tz )) ) })
针织物 :: 卡布尔的( 测验 )
tz_plot(tz_pot)( ” 美国/温哥华 ” )
# Date对象 tz_ offset(系统日期(), ” 非洲/阿尔及尔 ” ) # >tz_name日期时区is_dst utc_offset_h
# >1非洲/阿尔及尔2023-10-17 CET FALSE 1
# 类似日期的字符串 tz_偏移( ” 2017-03-01 ” , tz(赫兹) = ” 新加坡 ” ) # >tz_name日期时区is_dst utc_offset_h
# >1新加坡2017-03-01+08假8
# POSIXct日期时间对象 tz_offset(系统时间()) # >警告:您提供的POSIXct类对象没有时区
# >属性,并且未在“tz”参数中指定一个。 默认为当前
# >(美国/温哥华)。
# >tz_name日期时区is_dst utc_offset_h
# >1美洲/温哥华2023-10-17 12:11:11 PDT TRUE-7
tz_list()% > % 头部( 20 ) % > % 针织物 :: 卡布尔()