【发布时间】:2020-11-17 05:19:52
【问题描述】:
我有大量带有日期的 .xls 文件,我正在读入 R。我遇到的问题是每个人都以不同的方式填写“日期”列。因此,我有这样的事情:
date <- c(1995, 1995-05-03, 03-05-1995, 1995/5)
我一直在尝试找到解决此问题的方法:
- 通过使用
as.Date() - 通过使用
convertToDate()
但这当然会产生多个NAs。
有没有办法解决这个问题?
【问题讨论】:
我有大量带有日期的 .xls 文件,我正在读入 R。我遇到的问题是每个人都以不同的方式填写“日期”列。因此,我有这样的事情:
date <- c(1995, 1995-05-03, 03-05-1995, 1995/5)
我一直在尝试找到解决此问题的方法:
as.Date()
convertToDate()
但这当然会产生多个NAs。
有没有办法解决这个问题?
【问题讨论】:
您可以尝试anytime 包,假设您可以在数据中添加引号:
library(anytime)
date <- anydate(date)
head(date)
#> [1] "1995-01-01" "1995-05-03" "1995-03-05" "1995-05-01"
由 reprex 包于 2020-07-27 创建 (v0.3.0)
【讨论】:
您可以尝试lubridate::parse_date_time(),它允许您指定数据中可能出现的多种日期和时间格式(并且您不需要保持格式的顺序):
date <- c("1995", "1995-05-03", "03-05-1995", "1995/5", "1996.12.01", "1.3.1993")
lubridate::parse_date_time(date, order = c("Y", "Ymd", "dmY", "Y/m"))
#> [1] "1995-01-01 UTC" "1995-05-03 UTC" "1995-05-03 UTC" "1995-05-01 UTC"
#> [5] "1996-12-01 UTC" "1993-03-01 UTC"
【讨论】: