Can I apply a function over a vector using base tryCatch?

后端 未结 3 727
既然无缘
既然无缘 2021-01-16 16:24

I\'m trying to parse dates (using lubridate functions) from a vector which has mixed date formats.

departureDate <- c(\"Aug 17, 2020 12:00:00 AM\", \"Nov          


        
3条回答
  •  醉酒成梦
    2021-01-16 17:05

    The ideal situation is that the code should be able to deal with every format on its own, without letting it fall to an exception.

    Another issue to take into account is that the myd_hms() function returns dates in the POSIXct data type, whereas dmy() returns the Date type, so they wouldn't mix well together.

    The code below applies mdy_hms(), then converts it to Date. It then tests for NA's and applies the second function dmy() on the missing values. More rules can be added in the pipeline at will if more formats are to be recognized.

    library(dplyr)
    
    dates.converted <- 
      mdy_hms(departureDate, tz = ) %>% 
      as.Date() %>%
      ifelse(!is.na(.), ., dmy(departureDate)) %>%
      structure(class = "Date")
    
    print(dates.converted)
    

    Output

     [1] "2020-08-17" "2019-11-19" "2020-12-21" "2020-12-24" "2020-12-24" "2020-04-19" "2019-06-28" "2019-08-16"
     [9] "2019-02-04" "2019-04-10" "2019-07-28" "2019-07-26" "2020-06-22" "2020-04-05" "2021-05-01"
    

提交回复
热议问题