[R] return unique values from date/time class object
Prof Brian Ripley
ripley at stats.ox.ac.uk
Tue Aug 16 08:50:31 CEST 2005
On Tue, 16 Aug 2005, McClatchie, Sam (PIRSA-SARDI) wrote:
> Background:
> OS: Linux Mandrake 10.1
> release: R 2.1.1
> editor: GNU Emacs 21.3.2
> front-end: ESS 5.2.3
> ---------------------------------
>
> Thanks to Brian Ripley (I've upgraded from source, thanks for the reminder)
> and Petr Pikal for their suggestions, but I have not made clear the form of
> my data:
You missed my comment about POSIXlt objects: convert to POSIXct first.
I can't reproduce your error messages, but
unique(as.POSIXct(new.time))
works for me.
>
> Browse[1]> ceduna[1:10,]
> LSD AVIATION_ID WND_DIR WND_SPD_MPS
> 1 1/01/2001 10:30:00 YCDU 230 4.6
> 2 1/01/2001 11:00:00 YCDU 210 4.1
> 3 1/01/2001 11:30:00 YCDU 230 6.7
> 4 1/01/2001 12:00:00 YCDU 230 7.7
> 5 1/01/2001 12:30:00 YCDU 220 8.2
> 6 1/01/2001 13:00:00 YCDU 210 7.2
> 7 1/01/2001 13:30:00 YCDU 210 7.2
> 8 1/01/2001 14:00:00 YCDU 200 6.7
> 9 1/01/2001 14:30:00 YCDU 190 7.7
> 10 1/01/2001 15:00:00 YCDU 200 8.2
> Browse[1]> class(ceduna)
> [1] "data.frame"
> Browse[1]> x <- as.character(ceduna$LSD)
> Browse[1]> new.time <- strptime(x, "%d/%m/%Y %H:%M:%S")
> Browse[1]> class(new.time)
> [1] "POSIXt" "POSIXlt"
> Browse[1]> unique(new.time)
> Error in unique.default(new.time) : unique() applies only to vectors
> Browse[1]> tt <- new.time[!duplicated(unclass(new.time))]
> Error in duplicated.default(unclass(new.time)) :
> duplicated() applies only to vectors
> Browse[1]>
>
> I'm obviously doing something silly with the data classes, but what?
--
Brian D. Ripley, ripley at stats.ox.ac.uk
Professor of Applied Statistics, http://www.stats.ox.ac.uk/~ripley/
University of Oxford, Tel: +44 1865 272861 (self)
1 South Parks Road, +44 1865 272866 (PA)
Oxford OX1 3TG, UK Fax: +44 1865 272595
More information about the R-help
mailing list