Hi there: normally I?m quite comfortable with as.Date(). But this data set is causing problems. The core of the data frame looks like the sample data frame below, but my attempt to convert df$mydate to a date object returns only NA. Can anyone provide a suggestion? Thank you, Simon Kiss #sample data frame df<-data.frame(mydate=factor(c('Jan-15', 'Feb-13', 'Mar-11', 'Jul-12')), other=rnorm(4, 3)) #Attempt to convert as.Date(as.character(df$mydate), format='%b-%y')
On 26/03/2015 21:11, Simon Kiss wrote:> Hi there: normally I?m quite comfortable with as.Date(). But this data set is causing problems. > > The core of the data frame looks like the sample data frame below, but my attempt to convert df$mydate to a date object returns only NA. Can anyone provide a suggestion? > > Thank you, Simon Kiss > > #sample data frame > df<-data.frame(mydate=factor(c('Jan-15', 'Feb-13', 'Mar-11', 'Jul-12')), other=rnorm(4, 3)) > #Attempt to convert > as.Date(as.character(df$mydate), format='%b-%y')You would be on surer ground with something like as.Date(paste0('01-',as.character(df$mydate)), format='%d-%b-%y') since it is unclear what dates you expected to get. -- Brian D. Ripley, ripley at stats.ox.ac.uk Emeritus Professor of Applied Statistics, University of Oxford 1 South Parks Road, Oxford OX1 3TG, UK
> On Mar 26, 2015, at 4:11 PM, Simon Kiss <sjkiss at gmail.com> wrote: > > Hi there: normally I?m quite comfortable with as.Date(). But this data set is causing problems. > > The core of the data frame looks like the sample data frame below, but my attempt to convert df$mydate to a date object returns only NA. Can anyone provide a suggestion? > > Thank you, Simon Kiss > > #sample data frame > df<-data.frame(mydate=factor(c('Jan-15', 'Feb-13', 'Mar-11', 'Jul-12')), other=rnorm(4, 3)) > #Attempt to convert > as.Date(as.character(df$mydate), format='%b-%y')Hi, R's default date class object requires a full date, with a month, day and year. You might look at the 'zoo' package on CRAN, which has a yearmon() function. Regards, Marc Schwartz
That would be because they are not dates... they don't specify the day. Either add a day of month to the character data before you convert it, or use the yearmon class from zoo. Something like... as.Date(paste("1",as.character(df$mydate),sep="-"), format='%d-%b-%y') And why in the world are you converting to factor and back? Perhaps because you are not preventing conversion to factor when you read in your actual data? Do you know about the stringsAsFactors argument to read.table and friends? --------------------------------------------------------------------------- Jeff Newmiller The ..... ..... Go Live... DCN:<jdnewmil at dcn.davis.ca.us> Basics: ##.#. ##.#. Live Go... Live: OO#.. Dead: OO#.. Playing Research Engineer (Solar/Batteries O.O#. #.O#. with /Software/Embedded Controllers) .OO#. .OO#. rocks...1k --------------------------------------------------------------------------- Sent from my phone. Please excuse my brevity. On March 26, 2015 2:11:50 PM PDT, Simon Kiss <sjkiss at gmail.com> wrote:>Hi there: normally I?m quite comfortable with as.Date(). But this data >set is causing problems. > >The core of the data frame looks like the sample data frame below, but >my attempt to convert df$mydate to a date object returns only NA. Can >anyone provide a suggestion? > >Thank you, Simon Kiss > >#sample data frame >df<-data.frame(mydate=factor(c('Jan-15', 'Feb-13', 'Mar-11', >'Jul-12')), other=rnorm(4, 3)) >#Attempt to convert >as.Date(as.character(df$mydate), format='%b-%y') > >______________________________________________ >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.