我在R脚本中使用web请求从ArcGIS Rest服务检索数据。其中一个属性列包含日期值。这些日期以纪元值(字符串)的形式返回。我尝试将这些纪元字符串转换为人类可读的日期,但直到现在都没有用…
请参阅下面的可重现脚本。包含日期的列称为WVK_BEGDAT。此列的内容应转换为人类可读的日期。
我尝试了通过谷歌找到的几个建议……
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")我得到的最接近的方法是使用lubridate包中的as_date()函数。此函数至少不会返回错误,但使用NAs填充该列。
有什么建议吗?提前谢谢。
发布于 2019-02-19 23:02:41
as.POSIXct应该可以做到这一点:
as.POSIXct(as.numeric(NWB$WVK_BEGDAT)/1000, origin = "1970-01-01")您必须除以1000,因为您的纪元时间似乎以毫秒为单位。
https://stackoverflow.com/questions/54768565
复制相似问题