R:从xlsx导入日期和时间

时间:2017-01-13 15:06:06

标签: r excel datetime

任何人都可以帮助我使用具有以下结构的excel文件的正确导入设置(用于时间序列分析):

label1  varName
label2  random text
label3  random text2
2015-01-01 01:00    85
2015-01-01 02:00    26
2015-01-01 03:00    15
2015-01-01 04:00    13
2015-01-01 05:00    22
2015-01-01 06:00    21
2015-01-01 07:00    13
2015-01-01 08:00    22
2015-01-01 09:00    20
2015-01-01 10:00    31
2015-01-01 11:00    36
2015-01-01 12:00    33
2015-01-01 13:00    33
2015-01-01 14:00    33

labelvarName是要保留的行。 应删除第2行和第3行。

数据库从2015年1月1日凌晨1点开始,到2015年11月31日晚上11点结束。 对于大多数天,我每小时都有一个值。内部值有NAsnrow=8760

我还在学习如何在R中编写时间序列,但是我想象如果R会分割%Y-%m-%d %H:%M列,那么处理摘要会更容易(比如每天表示)分成两个单独的。

使用RStudio默认readxl库进行简单导入失败,因为导入第2行和第3行并将日期转换为有趣的格式:42005.041666666664

enter image description here

通常我会手工处理(在excel中)并将一个干净的txt导入R.问题是我需要处理61个类似的文件(针对不同的年份和不同的变量)。我确信有一种方法可以自动完成这项任务,但经过6小时的搜索,测试和阅读,我基本上和今天早上一样。

我很欣赏任何暗示或帮助。 谢谢

2 个答案:

答案 0 :(得分:0)

Exel通常使用不同的单元格格式来存储日期时间值。

示例1:

Cell value visible to user: 1/28/2019 7:00:00 AM 
Exel stores value in general format: 43493.2916666667

43493 - number of days after 1/1/1900
0.2916666667 - % of the day [7*60/(24*60)]

示例2:

Cell value visible to user: 1/28/2019 7:23:33 AM
Exel stores value in general format: 43493.3080208333

0.3080208333 - % of the day [(7*60*60+23*60+33)/(24*60*60)]

答案 1 :(得分:0)

您可以将数字转换回日期时间格式,例如POSIXct

library("datetimeutils")
convert_date(42005.041666666664, type = "excel", fraction = TRUE)
## [1] "2015-01-01 01:00:00 CET"