Преобразование времени эпохи (строки) в удобочитаемую дату в R-скрипте - PullRequest
0 голосов
/ 19 февраля 2019

Я получаю данные из сервиса ArcGIS Rest с помощью веб-запроса в сценарии R.Один из столбцов атрибута содержит значение даты.Эти даты возвращаются как значения эпох (символьные строки).Я пытаюсь преобразовать эти строки эпохи в удобочитаемые даты, но до сих пор безрезультатно ...

См. Мой воспроизводимый сценарий ниже.Столбец, содержащий дату, называется WVK_BEGDAT.Содержимое этого столбца следует преобразовать в удобочитаемые даты.

Я пробовал несколько предложений, найденных через Google ...

library(httr)
library(sf)
library(lubridate)

url <- parse_url("https://services.arcgis.com/nSZVuSZjHpEZZbRo/arcgis/rest/services")
url$path <- paste(url$path, "NWB_Wegvakken/FeatureServer/0/query", sep = "/")
url$query <- list(where = "WEGBEHSRT = 'R' AND WEGNUMMER = '015'",
                  outFields = "*",
                  returnGeometry = "true",
                  f = "json")
request <- build_url(url)
request
NWB <- st_read(request, stringsAsFactors = FALSE)
plot(st_geometry(NWB))

NWB$WVK_BEGDAT2 <- as_date(NWB$WVK_BEGDAT, format="%d-%m-%Y", tz = "CET")

Самое близкое, что я получаю, - это использование функции as_date()из пакета lubridate.Эта функция, по крайней мере, не возвращает ошибку, но заполняет столбец NA.

Есть предложения?Заранее спасибо.

1 Ответ

0 голосов
/ 19 февраля 2019

as.POSIXct должен сделать трюк:

as.POSIXct(as.numeric(NWB$WVK_BEGDAT)/1000, origin = "1970-01-01")

Вы должны разделить на 1000, потому что ваши времена эпохи, кажется, в миллисекундах.

...