У меня есть фрейм данных в R со следующей структурой:
df <- data.frame(
long = c(-112, 34, 39),
lat = c(41, -92, -76),
state=c("utah", "arkansas", "maryland"),
utc_time = c(1593855055, 1593826821, 1593826447)
)
long lat state utc_time <br>
1 -112 41 utah 1593855055 <br>
2 34 -92 arkansas 1593826821 <br>
3 39 -76 maryland 1593826447 <br>
<br>
Я хотел бы преобразовать utc_time в местное время, используя lat, long или код состояния. Я понятия не имею, с какого времени исходная марка ut c, но похоже, что GMT.
Мысли? Спасибо.
Обновление:
Спасибо, MrFlick. Да, это было полезно. Пока я не мог заставить работать пакет часовых поясов. Я использовал прилагаемый файл формы и произвел пространственное соединение.
TZ <- st_read("shape file from http://efele.net/maps/tz/us/")
df <- st_as_sf(df, coords = c("long", "lat"), crs = st_crs(TZ))
df <- st_join(df, TZ)
Теперь у меня есть фрейм данных, который выглядит следующим образом:
df <- data.frame(
TZID = c("America/New_York", "America/Denver", "America/New_York"),
utc_time = c(1593855055, 1593826821, 1593826447)
)
Я все еще пытаюсь получить R для распознайте это как местное время:
df$date <- as.POSIXct(df$utc_time, tz=TZID)
Я не знаю, неправильно ли я векторизирую или неправильно понимаю команду POSIXct. Тем не менее, я нашел ваш ответ чрезвычайно полезным. Спасибо.