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

问题描述 投票:0回答:3

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

该网站将第一个“事件发生日期”列为“ 29/04/2005,3:36 am”。但是,当我下载数据并将其导入R时,它显示为“ 1.114710e + 12”; csv显示值为“ 1114709760000”。这不能改变看门人程序包excel_numeric_to_date()中的可靠功能。关于我需要做什么来将它们转换为日期有任何线索吗?

r date datetime lubridate janitor
3个回答
1
投票

看起来它是距unix-epoch(1970-01-01)以毫秒为单位的数字...因此,首先除以1000,然后使之成为posix。确保设置正确的时区!

对我来说(荷兰),数据显示在时区“欧洲/阿姆斯特丹” ...但这可能与您有所不同...

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

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

0
投票

尝试一下:

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

0
投票
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] >>

© www.soinside.com 2019 - 2024. All rights reserved.