格式为4/29/2016
的日期可以正确解析,但是格式为6242016
和2042016
的日期则无法解析。
R是否认为某些不带斜杠的日期是第一天而不是月份?
我尝试在dmy
中加入lubrdiate
,但仍然无法正常工作。
我尝试查看Sys.getlocale("LC_TIME")
,它给了我"English_United States.1252"
。
demo$date <- as.character(demo$date)
demo <- demo %>%
mutate(date = parse_date_time(date, "mdy"))
答案 0 :(得分:2)
您可以使用Stringr将日期全部整理为相同的格式。然后转换为数字并使用lubridate进行解析。
library(stringr)
library(lubridate)
dates <- c("6242016", "2042016", "4/29/2016")
dates <- str_remove_all(dates, "/")
dates <- as.numeric(dates)
lubridate::mdy(dates)
# [1] "2016-06-24" "2016-02-04" "2016-04-29"
答案 1 :(得分:2)
as.Date(sprintf("%08d",
as.numeric(gsub("/", "", c("6242016", "2042016", "4/29/2016")))),
format = "%m%d%Y")
# [1] "2016-06-24" "2016-02-04" "2016-04-29"
答案 2 :(得分:0)
此
as.Date("2042016", "%m%d%Y")
返回NA
,而不是
as.Date("02042016", "%m%d%Y")
这是因为月份必须用两位数字(00-12)表示
尝试在[1,9]范围内的月份中添加前导零。