R语言 如何解析这两种日期格式?

ikfrs5lh  于 2023-04-03  发布在  其他
关注(0)|答案(3)|浏览(108)

格式为4/29/2016的日期可以正确解析,但格式为62420162042016的日期无法解析。
R是否认为某些没有斜线的日期的第一天是日而不是月?
我试过在lubrdiate中包含dmy,但仍然不起作用。
我试着查看Sys.getlocale("LC_TIME"),结果是"English_United States.1252"

demo$date <- as.character(demo$date)
demo <- demo %>%
      mutate(date = parse_date_time(date, "mdy"))
deikduxw

deikduxw1#

你可以用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"
jei2mxaa

jei2mxaa2#

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"
rryofs0p

rryofs0p3#

这个

as.Date("2042016", "%m%d%Y")

返回NA,而不是
as.Date("02042016", "%m%d%Y")
这是因为月份必须用两位数(00-12)表示
尝试为范围[1,9]中的月份添加前导零。

相关问题