[R] Mixed Date Formats

Duncan Mackay dulcalma at bigpond.com
Thu Jul 30 04:12:34 CEST 2015


Hi

I wonder if it is easier to convert the dates to character format and then reformat using gsub or the like

str(SampleData)
SampleData$date <- as.character(SampleData$date)
str(SampleData)

as.Date(
ifelse(nchar(SampleData[,"date"]) == 9, as.Date(SampleData[,"date"], format = "%d-%b-%y"),
       ifelse(nchar(SampleData[,"date"]) == 8, as.Date(SampleData[,"date"], format = "%d/%m/%y"),
              ifelse(as.numeric(substr(SampleData[,"date"],1,2)) > 12,
                      as.Date(SampleData[,"date"], format =  "%d/%m/%Y"),
                      as.Date(SampleData[,"date"], format =  "%m/%d/%Y")) )), origin = as.Date("1970-01-01"))

Beware of the American format in months jan feb mar oct nov -- will need more conditions to be imposed

Regards

Duncan

Duncan Mackay
Department of Agronomy and Soil Science
University of New England
Armidale NSW 2351
Email: home: mackay at northnet.com.au



-----Original Message-----
From: R-help [mailto:r-help-bounces at r-project.org] On Behalf Of farnoosh sheikhi via R-help
Sent: Thursday, 30 July 2015 07:16
To: Sarah Goslee
Cc: R. Help
Subject: Re: [R] Mixed Date Formats

Hi Sarah,
Thanks for getting back to me.Here is an example of my data:SampleData <- structure(list(id = 1:7, value = c(5813L, 8706L, 4049L, 5877L,                                              1375L, 2223L, 3423L), date = structure(c(4L, 3L, 2L, 1L, 7L,                                                                                       6L, 5L), .Label = c("05/12/11", "06/05/11", "07-Dec-11",                                                                                                           "19-Dec-11", "01/22/2011", "10/19/2011", "31/12/2011"                                                                                      ), class = "factor")), .Names = c("id", "value", "date"), row.names = c(NA,                                                                                                                                                               -7L), class = "data.frame")SampleData
Thanks for your help:).
 
 


     On Wednesday, July 29, 2015 1:50 PM, Sarah Goslee <sarah.goslee at gmail.com> wrote:
   

 On Wed, Jul 29, 2015 at 2:45 PM, farnoosh sheikhi via R-help
<r-help at r-project.org> wrote:
>  Hi Arun,
> Hope all is well with you. I have a data with a column for date.The date format is mixed. There are date values with Month/Day/Year format and values with Day/Month/Year format.I don't know how to unify it.I really appreciate your help.Thanks.

You sent this to the R-help list, not just to Arun, so I'm assuming
this is an R question. The best way to get help is to provide a sample
of your data using dput() and to clearly specify what you would like
as the result - "unify" is a bit vague. paste(x, collapse="") could be
considered unification, after all.

Sarah

-- 
Sarah Goslee
http://www.functionaldiversity.org


  
	[[alternative HTML version deleted]]

______________________________________________
R-help at 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