[R] How do I use as.Date when day values are missing?
Peter Dalgaard
P.Dalgaard at biostat.ku.dk
Mon Feb 25 13:40:32 CET 2008
Gabor Grothendieck wrote:
> On Mon, Feb 25, 2008 at 6:03 AM, Peter Dalgaard
> <P.Dalgaard at biostat.ku.dk> wrote:
>
>> Gabor Grothendieck wrote:
>>
>>> In looking at this again here is a slight simplification. Its now
>>> only one line:
>>>
>>>
>>>
>>>> library(chron)
>>>> x <- c("01/00/05", "01/22/06")
>>>> as.chron(sub("/00/", "/15/", x)) + (regexpr("/00/", x) > 0) / 2
>>>>
>>>>
>>> [1] (01/15/05 12:00:00) (01/22/06 00:00:00)
>>>
>>>
>> You don't really need chron here, do you?
>>
>> as.Date(sub("/00/", "/15/", x), format="%m/%d/%y")
>>
>> (The format spec seems to have been left out below. Also, beware the
>> system-dependence of %y.)
>>
>
> Yes, you need chron since entire point was to encode the missings as
> noon so one can reverse the procedure and Date does not support times.
> Also the format was omitted because its not required. m/d/y is the default
> for chron.
>
But the _original_ question involved as.Date and was missing the format
in its sample code:
> > 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"
> > 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"
Encoding missing values as a specific time of day was your own invention
and might as well be done otherwise, e.g. as
missingDate <- (regexpr("/00/", x) > 0)
--
O__ ---- Peter Dalgaard Øster Farimagsgade 5, Entr.B
c/ /'_ --- Dept. of Biostatistics PO Box 2099, 1014 Cph. K
(*) \(*) -- University of Copenhagen Denmark Ph: (+45) 35327918
~~~~~~~~~~ - (p.dalgaard at biostat.ku.dk) FAX: (+45) 35327907
More information about the R-help
mailing list