I have a data frame which contains some valuable date information. But for a few of the dates, the day information missing . Viz:> interesting.data$date[1] "1/22/93" "1/22/93" "1/23/93" "1/00/93" "1/28/93" "1/31/93" "1/12/93" i.e. for dates where the day info is missing, the "%d" part of the "%m/%d/%yy" format is simply represented as "00". When I apply as.Date to the date information, the dates which don't contain exact day information are converted to "NA". Viz:> as.Date(interesting.data$date)[1] "1993-01-22" "1993-01-22" "1993-01-23" NA "1993-01-28" "1993-01-31" "1993-01-12" Is there a way of using the as.Date function when I only have partial dates (eg missing day information which is represented as "00", as above) such that the date isn't represented as NA? Thanks, Anupa ____________________________________________________________________________________ Never miss a thing. Make Yahoo your home page. [[alternative HTML version deleted]]
Gabor Grothendieck
2008-Feb-25 02:45 UTC
[R] How do I use as.Date when day values are missing?
It really depends on what you want to do with them but one possibility might be to represent them as chron dates and use a time of 0 for true dates and noon for missing dates replacing the missing day with 01 or 15 or some other day:> library(chron) > x <- c("01/00/05", "01/22/06") > no.day <- regexpr("/00/", x) > 0 > as.chron(ifelse(no.day, sub("/00/", "/15/", x), x )) + no.day/2[1] (01/15/05 12:00:00) (01/22/06 00:00:00) We can then tell which have the incomplete dates with as.numeric(xx) %% 1 > 0 On Sun, Feb 24, 2008 at 9:00 PM, Anupa Fabian <anupa.fabian at yahoo.com> wrote:> I have a data frame which contains some valuable date information. But for a few of the dates, the day information missing . > > Viz: > > interesting.data$date > [1] "1/22/93" "1/22/93" "1/23/93" "1/00/93" "1/28/93" "1/31/93" "1/12/93" > > i.e. for dates where the day info is missing, the "%d" part of the "%m/%d/%yy" format is simply represented as "00". > > When I apply as.Date to the date information, the dates which don't contain exact day information are converted to "NA". > > Viz: > > as.Date(interesting.data$date) > [1] "1993-01-22" "1993-01-22" "1993-01-23" NA "1993-01-28" "1993-01-31" "1993-01-12" > > Is there a way of using the as.Date function when I only have partial dates (eg missing day information which is represented as "00", as above) such > that the date isn't represented as NA? > > Thanks, > Anupa > > > > > > > > ____________________________________________________________________________________ > Never miss a thing. Make Yahoo your home page. > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help at 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. >