在 R 中将日期时间转换为日期

Converting datetime to date in R

我很难将日期时间数据转换为 R 中的日期单元格。数据来自 http://data-ral.opendata.arcgis.com/datasets/raleigh-police-incidents-srs/data 上的这个数据集合。

该网站将第一个 "incident date" 列为“29/04/2005,3:36 上午”。但是,当我下载数据并将其导入 R 时,结果为“1.114710e+12”;我已经复制了下面的前六个单元格。

   INC_DATETIME
          <dbl>
1 1114709760000
2 1104581100000
3 1105283580000
4 1105748940000
5 1107976740000
6 1113182880000

这是来自 janitor 包的可靠功能,excel_numeric_to_date()。关于我需要做什么才能将这些转换为最新的任何线索?

看起来它是一个从 unix-epoch (1970-01-01) 开始的以毫秒为单位的数字...所以首先除以 1000,然后 make 是一个 posix。确保设置正确的时区!

对我(荷兰)来说,数据按时区显示 "Europe/Amsterdam"...但这对您来说可能有所不同...

as.POSIXct( 1114709760000/1000, origin = "1970-01-01", tz = "Europe/Amsterdam" )

[1] "2005-04-28 19:36:00 CEST"

试试这个:

df <- read.csv("./Data/Raleigh_Police_Incidents_(SRS).csv", stringsAsFactors = FALSE)
df$INC_DATETIME1 <- as.POSIXct(df$INC_DATETIME/1000, origin = "1970-01-01")
library(tidyverse)
library(lubridate)

data_tbl <- read.csv("Raleigh_Police_Incidents_(SRS).csv")
data_tbl$INC_DATETIME1 <- as.POSIXct(data_tbl$INC_DATETIME/1000, origin = "1970-01-01")
data_tbl$date_format <- as.Date(data_tbl$INC_DATETIME1, format = "%Y-%m-%d")
data_tbl <- data_tbl %>%  
    mutate(only_date = ymd(date_format), date = day(only_date))
head(data_tbl$date)

# [1] 28 1 9 15 9 11