[R] character to time problem

Jason Barnhart jasoncbarnhart at msn.com
Fri Jun 8 21:47:20 CEST 2007


na.last belongs to order().

?order shows
    "na.last for controlling the treatment of NAs. If TRUE,
    missing values in the data are put last; if FALSE, they are
    put first; if NA, they are removed."

----- Original Message ----- 
From: "John Kane" <jrkrideau at yahoo.ca>
To: "Jason Barnhart" <jasoncbarnhart at msn.com>; "R R-help" 
<r-help at stat.math.ethz.ch>
Sent: Friday, June 08, 2007 7:35 AM
Subject: Re: [R] character to time problem


>
> --- Jason Barnhart <jasoncbarnhart at msn.com> wrote:
>
>> Hi John,
>>
>> a) The NA appears because '30/02/1995' is not a
>> valid date.
>>
>>     > strptime('30/02/1995' , "%d/%m/%Y")
>>     [1] NA
>>
>
> I knew we should never have moved to the Gregorian
> Calender!
>
> Thanks.  I accidently made up the date but this means
> that I have some invalid dates in the file. Not a
> problem now I know what's happening. And our contract
> says someone else gets to fix them :)
>
>> b) dates which has the following classes uses
>> sort.POSIXlt which in
>> turns sets na.last to NA.  ?order details how NA's
>> are handled in
>> ordering data via na.last.
>>
>>     > class(dates)
>>     [1] "POSIXt"  "POSIXlt"
>>
>>     > methods(sort)
>>     [1] sort.default sort.POSIXlt
>>
>>     > sort.POSIXlt
>>     function (x, decreasing = FALSE, na.last = NA,
>> ...)
>>     x[order(as.POSIXct(x), na.last = na.last,
>> decreasing =
>> decreasing)]
>>     <environment: namespace:base>
>>
>> After resetting the Feb. date the code works.
>>
>> HTH,
>> -jason
>>
>
> So it does.
>
> I had not thought to look at the sort.POSIXlt
> function.  I don't quite understand what na.last is
> doing and don't seem to see the documentation.  Is it
> sorting the NA's to the last place(s) in the vector
> and then dropping them?
>
> Thanks again
>
>> ----- Original Message ----- 
>> From: "John Kane" <jrkrideau at yahoo.ca>
>> To: "R R-help" <r-help at stat.math.ethz.ch>
>> Sent: Thursday, June 07, 2007 2:17 PM
>> Subject: [R] character to time problem
>>
>>
>> >I am trying to clean up some dates and I am clearly
>> > doing something wrong.  I have laid out an example
>> > that seems to show what is happening with the
>> "real"
>> > data.  The  coding is lousy but it looks like it
>> > should have worked.
>> >
>> > Can anyone suggest a) why I am getting that NA
>> > appearing after the strptime() command and b) why
>> the
>> > NA is disappearing in the sort()? It happens with
>> > na.rm=TRUE  and na.rm=FALSE
>> > -------------------------------------------------
>> > aa  <- data.frame( c("12/05/2001", " ",
>> "30/02/1995",
>> > NA, "14/02/2007", "M" ) )
>> > names(aa)  <- "times"
>> > aa[is.na(aa)] <- "M"
>> > aa[aa==" "]  <- "M"
>> > bb <- unlist(subset(aa, aa[,1] !="M"))
>> > dates <- strptime(bb, "%d/%m/%Y")
>> > dates
>> > sort(dates)
>> > --------------------------------------------------
>> >
>> > Session Info
>> > R version 2.4.1 (2006-12-18)
>> > i386-pc-mingw32
>> >
>> > locale:
>> > LC_COLLATE=English_Canada.1252;
>> > LC_CTYPE=English_Canada.1252;
>> > LC_MONETARY=English_Canada.1252;
>> > LC_NUMERIC=C;LC_TIME=English_Canada.1252
>> >
>> > attached base packages:
>> > [1] "stats"     "graphics"  "grDevices" "utils"
>> > "datasets"  "methods"   "base"
>> >
>> > other attached packages:
>> >  gdata   Hmisc
>> > "2.3.1" "3.3-2"
>> >
>> > (Yes I know I'm out of date but I don't like
>> > upgrading just as I am finishing a project)
>> >
>> > Thanks
>> >
>> > ______________________________________________
>> > R-help at stat.math.ethz.ch 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.
>> >
>>
>>
>
>
>
>      Ask a question on any topic and get answers from real people. 
> Go to Yahoo! Answers and share what you know at 
> http://ca.answers.yahoo.com
>



More information about the R-help mailing list