我有一个包含以下信息的数据集:纬度,经度,EST时间.例如,一次观察
lat = 13
long = -2
time1 = as.POSIXlt("2014-02-12 17:00:00", tz = "EST")
Run Code Online (Sandbox Code Playgroud)
我想创建一个新的变量timeL,即本地时间.有关如何使用R的任何建议吗?
谢谢!
luk*_*keA 13
lat = 13
long = -2
time1 <- as.POSIXct("2014-02-12 17:00:00", tz = "EST")
# https://developers.google.com/maps/documentation/timezone/
apiurl <- sprintf("https://maps.googleapis.com/maps/api/timezone/%s?location=%s,%s×tamp=%d&sensor=%s",
"xml",
lat,
long,
as.numeric(time1),
"false")
library(XML)
tz <- xmlParse(readLines(apiurl))[["string(//time_zone_id)"]]
as.POSIXct(format(time1, tz=tz))
# [1] "2014-02-12 22:00:00 CET"
Run Code Online (Sandbox Code Playgroud)
或者,如@SymbolixAU所建议,使用他们的googleway包:
res <- googleway::google_timezone(c(lat, long), time1, key = NULL)
as.POSIXct(format(time1, tz=res$timeZoneId))
# [1] "2014-02-12 22:00:00 CET"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2570 次 |
| 最近记录: |