Re: [R] question about formatting Dates
Hi, I can see the mistake in the code as "$" before Y. dat1<-as.factor(c("1/2/2011","1/4/2011","1/4/2011")) dat1 [1] 1/2/2011 1/4/2011 1/4/2011 Levels: 1/2/2011 1/4/2011 as.Date(as.character(dat1), "%m/%d/%Y") [1] "2011-01-02" "2011-01-04" "2011-01-04" > as.Date(as.character(dat1),"%m/%d/$Y") [1] NA NA NA A.K. - Original Message - From: Erin Hodgess To: R help Cc: Sent: Tuesday, June 26, 2012 11:54 PM Subject: [R] question about formatting Dates Dear R People: I have dates as factors in the following: > poudel.df$DATE [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 [8] 1/9/2011 1/10/2011 Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 > I want them to be "regular" dates which can be sorted, etc. But when I did this: > as.character(poudel.df$DATE) [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" "1/7/2011" [7] "1/8/2011" "1/9/2011" "1/10/2011" and > as.Date(as.character(poudel.df$DATE),"%m/%d/$Y") [1] NA NA NA NA NA NA NA NA NA because the dates do not have leading zeros. There are approximately 30 years of nearly daily data in the entire set. Any suggestions would be much appreciated. Sincerely, Erin -- Erin Hodgess Associate Professor Department of Computer and Mathematical Sciences University of Houston - Downtown mailto: erinm.hodg...@gmail.com __ 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. __ 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.
Re: [R] question about formatting Dates
How about > dates <- as.factor(c("1/2/2011", "1/4/2011", "1/4/2011", "1/4/2011", "1/6/2011", "1/7/2011", "1/8/2011", "1/9/2011", "1/10/2011")) > dates [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 [8] 1/9/2011 1/10/2011 Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 > format(as.Date(dates, "%m/%d/%Y"), "%m/%d/%Y") [1] "01/02/2011" "01/04/2011" "01/04/2011" "01/04/2011" "01/06/2011" [6] "01/07/2011" "01/08/2011" "01/09/2011" "01/10/2011" -- David L Carlson Associate Professor of Anthropology Texas A&M University College Station, TX 77843-4352 > -Original Message- > From: r-help-boun...@r-project.org [mailto:r-help-bounces@r- > project.org] On Behalf Of Erin Hodgess > Sent: Tuesday, June 26, 2012 10:54 PM > To: R help > Subject: [R] question about formatting Dates > > Dear R People: > > I have dates as factors in the following: > > > poudel.df$DATE > [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 > 1/8/2011 > [8] 1/9/2011 1/10/2011 > Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 > > > > I want them to be "regular" dates which can be sorted, etc. > > But when I did this: > > > as.character(poudel.df$DATE) > [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" > "1/7/2011" > [7] "1/8/2011" "1/9/2011" "1/10/2011" > > and > > as.Date(as.character(poudel.df$DATE),"%m/%d/$Y") > [1] NA NA NA NA NA NA NA NA NA > > because the dates do not have leading zeros. > > There are approximately 30 years of nearly daily data in the entire > set. > > Any suggestions would be much appreciated. > > Sincerely, > Erin > > > -- > Erin Hodgess > Associate Professor > Department of Computer and Mathematical Sciences > University of Houston - Downtown > mailto: erinm.hodg...@gmail.com > > __ > 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. __ 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.
Re: [R] question about formatting Dates
Hello, I'm afraid you're wrong, this has nothing to do with leading zeros. Just see: x <- c("1/2/2011", "1/4/2011", "1/4/2011", "1/4/2011", "1/6/2011", "1/7/2011", "1/8/2011", "1/9/2011", "1/10/2011") as.Date(x, "%m/%d/%Y") y <- factor(x) str(y) as.Date(as.character(y), "%m/%d/%Y") Note that the correct way of transforming factors into their levels is to index the levels by the factor's values (which are always positive integers): levels(y)[y] [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" "1/7/2011" [7] "1/8/2011" "1/9/2011" "1/10/2011" Also, if those dates come from a file, maybe you want to read.table or read.csv with the option stringsAsFactors = FALSE and avoid the problem altogether. This has the side effect that all character variables will be read in as character variables and some might be categorical. What an ugly sentence! So this option must be used with caution. Hope this helps, Rui Barradas Em 27-06-2012 04:54, Erin Hodgess escreveu: Dear R People: I have dates as factors in the following: poudel.df$DATE [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 [8] 1/9/2011 1/10/2011 Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 I want them to be "regular" dates which can be sorted, etc. But when I did this: as.character(poudel.df$DATE) [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" "1/7/2011" [7] "1/8/2011" "1/9/2011" "1/10/2011" and as.Date(as.character(poudel.df$DATE),"%m/%d/$Y") [1] NA NA NA NA NA NA NA NA NA because the dates do not have leading zeros. There are approximately 30 years of nearly daily data in the entire set. Any suggestions would be much appreciated. Sincerely, Erin __ 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.
Re: [R] question about formatting Dates
On Tue, 26-Jun-2012 at 10:54PM -0500, Erin Hodgess wrote: |> Dear R People: |> |> I have dates as factors in the following: |> |> > poudel.df$DATE |> [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 |> [8] 1/9/2011 1/10/2011 |> Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 |> > |> |> I want them to be "regular" dates which can be sorted, etc. |> |> But when I did this: |> |> > as.character(poudel.df$DATE) |> [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" "1/7/2011" |> [7] "1/8/2011" "1/9/2011" "1/10/2011" |> |> and |> > as.Date(as.character(poudel.df$DATE),"%m/%d/$Y") |> [1] NA NA NA NA NA NA NA NA NA |> |> because the dates do not have leading zeros. I don't think that's the reason why. > as.Date(c("1/2/2011", "1/4/2011", "1/4/2011"), format = "%m/%d/%Y") [1] "2011-01-02" "2011-01-04" "2011-01-04" > Leading zeros aren't essential. |> |> There are approximately 30 years of nearly daily data in the entire set. |> |> Any suggestions would be much appreciated. |> |> Sincerely, |> Erin |> |> |> -- |> Erin Hodgess |> Associate Professor |> Department of Computer and Mathematical Sciences |> University of Houston - Downtown |> mailto: erinm.hodg...@gmail.com |> |> __ |> 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. -- ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. ___Patrick Connolly {~._.~} Great minds discuss ideas _( Y )_ Average minds discuss events (:_~*~_:) Small minds discuss people (_)-(_) . Eleanor Roosevelt ~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~.~. __ 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.
Re: [R] question about formatting Dates
On Tue, Jun 26, 2012 at 10:54 PM, Erin Hodgess wrote: > Dear R People: > > I have dates as factors in the following: > >> poudel.df$DATE > [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 > [8] 1/9/2011 1/10/2011 > Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 >> > > I want them to be "regular" dates which can be sorted, etc. > > But when I did this: > >> as.character(poudel.df$DATE) > [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" "1/7/2011" > [7] "1/8/2011" "1/9/2011" "1/10/2011" > > and >> as.Date(as.character(poudel.df$DATE),"%m/%d/$Y") Right about ... ^ should be a percent instead of a dollar sign. Also, probably can't hurt to used a named argument (but I don't think that's the problem here) In the future dput()-ery would be much appreciated. Michael > [1] NA NA NA NA NA NA NA NA NA > > because the dates do not have leading zeros. > > There are approximately 30 years of nearly daily data in the entire set. > > Any suggestions would be much appreciated. > > Sincerely, > Erin > > > -- > Erin Hodgess > Associate Professor > Department of Computer and Mathematical Sciences > University of Houston - Downtown > mailto: erinm.hodg...@gmail.com > > __ > 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. __ 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.
[R] question about formatting Dates
Dear R People: I have dates as factors in the following: > poudel.df$DATE [1] 1/2/2011 1/4/2011 1/4/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 [8] 1/9/2011 1/10/2011 Levels: 1/10/2011 1/2/2011 1/4/2011 1/6/2011 1/7/2011 1/8/2011 1/9/2011 > I want them to be "regular" dates which can be sorted, etc. But when I did this: > as.character(poudel.df$DATE) [1] "1/2/2011" "1/4/2011" "1/4/2011" "1/4/2011" "1/6/2011" "1/7/2011" [7] "1/8/2011" "1/9/2011" "1/10/2011" and > as.Date(as.character(poudel.df$DATE),"%m/%d/$Y") [1] NA NA NA NA NA NA NA NA NA because the dates do not have leading zeros. There are approximately 30 years of nearly daily data in the entire set. Any suggestions would be much appreciated. Sincerely, Erin -- Erin Hodgess Associate Professor Department of Computer and Mathematical Sciences University of Houston - Downtown mailto: erinm.hodg...@gmail.com __ 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.