[R] Mixed format

Rui Barradas ru|pb@rr@d@@ @end|ng |rom @@po@pt
Tue Jan 21 00:40:29 CET 2020


Hello,

The following strategy works with your data.
It uses the fact that most dates are in one of 3 formats, dmy, mdy, ymd.
It tries those formats one by one, after each try looks for NA's in the 
new column.


# first round, format is dmy
DFX$dnew <- lubridate::dmy(DFX$ddate)
na <- is.na(DFX$dnew)

# second round, format is mdy
DFX$dnew[na] <- lubridate::mdy(DFX$ddate[na])
na <- is.na(DFX$dnew)

# last round, format is ymd
DFX$dnew[na] <- lubridate::ymd(DFX$ddate[na])

# remove what didn't fit any format
DFX <- DFX[!is.na(DFX$dnew), ]
DFX


Hope this helps,

Rui Barradas

Às 22:58 de 20/01/20, Val escreveu:
> Hi All,
> 
> I have a data frame where one column is  a mixed date format,
> a date in the form "%m-%d-%y"  and "%m/%d/%Y", also some are not in date format.
> 
> Is there a way to delete the rows that contain non-dates  and
> standardize the dates in one date format like  %m-%d-%Y?
> Please see my  sample data and desired output
> 
> DFX<-read.table(text="name ddate
>    A  19-10-02
>    B  22-11-20
>    C  19-01-15
>    D  11/19/2006
>    F  9/9/2011
>    G  12/29/2010
>    H  DEX",header=TRUE)
> 
> Desired output
> name ddate
> A  19-10-2002
> B  22-11-2020
> C  19-01-2015
> D  11-19-2006
> F  09-09-2011
> G  12-29-2010
> 
> Thank you
> 
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list