On 02/03/2012 03:34 PM, Ana wrote: > Hi > > I have many excel files were the Date field was not declared as date, > so the dates look like this: 1/2/1978 > I know that the format is day/month/year > > How can I make R change this to Date format? > > If I use strftime, I get wrong dates: > > dataset=c("1/2/1978") > > strftime(dataset,"%d/%m/%Y") > "19/02/0001"
Hi! Prof. Ripley already provided a nice, concise answer, but here's a more verbose one. The function strftime() is used for output formatting. In your example, "%d/%m/%Y" is the chosen output format. Use strptime() for converting character vectors (i.e. text input) to class "POSIXlt". For converting to class "Date", use as.Date(). These are alternative classes for representing dates in R. > strptime(dataset, format="%d/%m/%Y") [1] "1978-02-01" > as.Date(dataset, format="%d/%m/%Y") [1] "1978-02-01" For converting "POSIXlt" or "Date" back to a character representation, use as.character() or, for a customizable style, format(). > format(strptime(dataset, format="%d/%m/%Y"), "%a %b %d, %Y") [1] "Wed Feb 01, 1978" -- Mikko Korpela Aalto University School of Science Department of Information and Computer Science ______________________________________________ R-help@r-project.org mailing list 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.