【问题标题】:How to import excel data with header info that is datetime如何导入带有日期时间标题信息的excel数据
【发布时间】:2019-02-05 02:57:01
【问题描述】:

我有来自电表的趋势能量。列标题采用日期时间(例如:1/13/2017 0:001/13/2017 0:15...),这些标题下方是整数的分表消耗读数。

当我执行read_excel() 时,标题以"424509.0129493" 之类的字符格式进入R。下面的列数据是数字。然后我执行gather 命令,当我执行标题日期时间小数时,所有小数都被截断为整数,这会删除我的时间间隔信息。非常感谢任何帮助。

meter_reads <- read_excel("_Jan to Feb meter data for Yardi.xlsx")
BoonShort <-  gather(meter_reads, Date, Value, 3:ncol(meter_reads))

【问题讨论】:

  • 可以使用as.Dateas.Date阅读后转换标题吗?
  • 为什么不将其保存为 csv?将 excel 电子表格另存为 csv 时,我没有遇到日期问题。 read.csv("FileName.csv", sep = ",", stringsAsFactors = FALSE)

标签: r excel datetime


【解决方案1】:

我将首先使用separate from tydir 将日期部分与小时部分分开。

*假设 df = "meter_reads",并且 dateTime 列 = "dateTimePart"

nuevoDf<-separate(data = meter_reads, col = dateTimePart, into = c("date","time"),sep = "\\.")

现在,Excel 为您提供了一个数值,表示 1899 年 12 月 30 日之后经过的天数。因此,我们需要做的就是将日期列转换为实际日期:

nuevoDf$realDate<- nuevaFecha<-as.POSIXct("1899-12-30")+nuevoDf$date*3600*24

**请注意,基本上我们通过获取 3600 * 24(1 天的秒数)来添加自那时以来的秒数

好吧,最后,要了解时间: 因此,excel 基本上为您提供了自上午 12 点以来过去的一天中的一小部分。我们所要做的就是获取该分数并在几秒钟内将其转换,如下所示:

nuevoDf$seconds<-nuevoDf$time*3600*24

然后,只需将秒数添加到您的真实日期:

nuevoDf$realDate + nuevoDf$seconds

【讨论】:

    猜你喜欢
    • 2016-04-24
    • 1970-01-01
    • 2020-10-12
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 2015-06-30
    • 2011-07-26
    • 2014-12-25
    相关资源
    最近更新 更多