当R中的日期和时间在同一列中时如何读取Excel文件

我正试图将一个excel文件读入R。在其他字段中,excel文件有两个“日期”字段,每个字段在SAME字段中都包含日期和时间戳。

示例:

StartDate 9/14/2019 10:18:59 AM
EndDate 9/18/2019 2:27:14 AM

当我尝试使用read_excel读取excel文件时,数据框非常奇怪地格式化了这两列。它吐出日期(带小数点)。例如43712.429849537039,我以为是从1970年1月1日开始的几天(当我键入lubrudate :: origin时弹出的起始日期)。

data %<>%    
  mutate(StartDate = as.Date(StartDate,origin = "1970-01-01 UTC"))

因此,我尝试使用as.Date将其转换回原来的日期,但是它将其转换为完全错误的日期...(将所有日期转换为2089年)。例如2089-09-05。

任何对此的帮助将不胜感激!必须有一种更简单的方法来直接读取日期时间列吗?!

ztwsiping 回答:当R中的日期和时间在同一列中时如何读取Excel文件

您可以使用lubridate套件,这非常好:

library(tidyverse)

df  <- data.frame(StartDate  =c("9/14/2019 10:18:59 AM","9/14/2019 3:18:59 PM"),EndDate= c("9/18/2019 2:27:14 AM","9/18/2019 1:27:14 PM"))


df <- df %>% mutate(StartDate = lubridate::mdy_hms(StartDate),EndDate = lubridate::mdy_hms(EndDate))
,

事实证明excel与R具有不同的“起源日期”。Excels计算的是01-01-1900的天数,其中R的计算是1970年1月1日的天数。

当我使用read_excel将文件读入df时,R使用excels的天数。这就是为什么当我尝试使用1970转换为日期格式时得到一个奇怪的日期的原因。当我使用as.Date时具有出色的“原始”日期为1990(卓越的原始日期)时,我的日期就可以正确解析了!

本文链接:https://www.f2er.com/3140801.html

大家都在问