【问题标题】:Error when parsing dates using Lubridate. All formats failed to parse. No formats found使用 Lubridate 解析日期时出错。所有格式都无法解析。未找到格式
【发布时间】:2020-04-11 09:51:26
【问题描述】:

我正在把头发拉出来。我正在尝试使用 lubridate 解析为 ymd_hms 格式。我最终会将这两个变量的数据框合并成一个更大的数据框。

原始 csv 中的日期格式似乎相当明确 (01.01.13 00:00),所以我不确定为什么会出现以下错误或如何解决它。

Warning message:
All formats failed to parse. No formats found. 

我曾尝试在网上寻找有关语言环境的信息,但我并没有真正取得太大的成功。

这是我一直在运行的

tariff <- read.csv("tariffs.csv", stringsAsFactors = F, sep = ";")
colnames(tariff) <- c("DateTime", "Tariff")
tariff$DateTime <- lubridate::ymd_hms(tariff$DateTime)
> head(tariff)
        DateTime Tariff
1 01.01.13 00:00 Normal
2 01.01.13 00:30 Normal
3 01.01.13 01:00 Normal
4 01.01.13 01:30 Normal
5 01.01.13 02:00 Normal
6 01.01.13 02:30 Normal

> tail(tariff)
            DateTime Tariff
17515 31.12.13 21:00 Normal
17516 31.12.13 21:30 Normal
17517 31.12.13 22:00 Normal
17518 31.12.13 22:30 Normal
17519 31.12.13 23:00 Normal
17520 31.12.13 23:30 Normal

> tariff$DateTime <- lubridate::ymd_hms(tariff$DateTime)
Warning message:
All formats failed to parse. No formats found. 

感谢您的帮助!

【问题讨论】:

  • 应该是dmy_hm(tariff$DateTime)

标签: r datetime time-series


【解决方案1】:

“y”、“m”、“d”的顺序可以根据“数据”的format 互换。根据显示的信息,“日”在前,然后是 2 位数的月份和 2 位数的年份。所以,应该是

library(lubridate)
dmy_hm(tariff$DateTime)

's' 不包括在内,因为 'DateTime' 中没有秒数

【讨论】:

  • 我不敢相信我没有发现这一点。很抱歉浪费了您的时间!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-10
相关资源
最近更新 更多