[R] error in seq.POSIXt?

Don MacQueen macq at llnl.gov
Sat Jun 1 01:42:34 CEST 2002


Nothing jumps out at me, I'm sorry to say.

But in the meantime, I am wondering if it wouldn't be easier to 
extract only the
winters with something like

    datevec[format(datevec,'%m') %in% c('12','01','02') &
            format(datevec,'%m-%d' != '02-29']

where datevec is the vector of days associated with your data, as an 
object of class POSIXct or POSIXlt.

Then use something like
   table(format(datevec,'%Y'))
to check that you have 90 of each.

-Don

At 3:27 PM -0600 5/31/02, Brandon Whitcher wrote:
>I am trying to extract only the winters (defined to be 01-Dec through
>28-Feb) of daily data from 1948-2002.  There are 90 days in each winter
>season.  I wrote the following code to gather the winter dates into a
>single vector:
>
>DJF <- NULL
>for(year in 1949:1999) {
>   temp.begin <- strptime(paste("01/12", year-1, sep="/"), "%d/%m/%Y")
>   temp.end <- strptime(paste("28/02", year, sep="/"), "%d/%m/%Y")
>   ## Gives wrong answer:
>   temp.seq <- seq(temp.begin, temp.end, by="day")
>   if(is.null(DJF))
>     DJF <- temp.seq
>   else
>     DJF <- c(DJF, temp.seq)
>   cat("Winter:", year, "\t", length(temp.seq), "\n")
>}
>
>with the following output:
>
>Winter: 1949	 90
>Winter: 1950	 90
>Winter: 1951	 90
>Winter: 1952	 90
>Winter: 1953	 90
>Winter: 1954	 90
>Winter: 1955	 90
>Winter: 1956	 90
>Winter: 1957	 90
>Winter: 1958	 90
>Winter: 1959	 90
>Winter: 1960	 90
>Winter: 1961	 90
>Winter: 1962	 90
>Winter: 1963	 90
>Winter: 1964	 90
>Winter: 1965	 90
>Winter: 1966	 90
>Winter: 1967	 90
>Winter: 1968	 90
>Winter: 1969	 90
>Winter: 1970	 90
>Winter: 1971	 90
>Winter: 1972	 90
>Winter: 1973	 90
>Winter: 1974	 89
>Winter: 1975	 89
>Winter: 1976	 90
>Winter: 1977	 90
>Winter: 1978	 90
>Winter: 1979	 90
>Winter: 1980	 90
>Winter: 1981	 90
>Winter: 1982	 90
>Winter: 1983	 90
>Winter: 1984	 90
>Winter: 1985	 90
>Winter: 1986	 90
>Winter: 1987	 90
>Winter: 1988	 90
>Winter: 1989	 90
>Winter: 1990	 90
>Winter: 1991	 90
>Winter: 1992	 90
>Winter: 1993	 90
>Winter: 1994	 90
>Winter: 1995	 90
>Winter: 1996	 90
>Winter: 1997	 90
>Winter: 1998	 90
>Winter: 1999	 90
>Winter: 2000	 90
>Winter: 2001	 90
>Winter: 2002	 90
>
>There are two years, 1974 and 1975, that produce only 89 days per winter.
>I could not figure out what the cause of this was, but a workaround is two
>rewrite the call to seq.POSIXt as:
>
>temp.seq <- seq(temp.begin, length.out=90, by="day")
>
>I am unsure why one works and one does not.  Any ideas?
>
>Brandon
>
>----------------------------------------------------------------------------
>   Geophysical Statistics Project
>   National Center for Atmospheric Research          +1 303 497 1709  voice
>   P.O. Box 3000, Boulder, CO  80307-3000            +1 303 497 1333  fax
>
>   whitcher at ucar.edu                            www.cgd.ucar.edu/~whitcher/
>----------------------------------------------------------------------------
>
>
>
>
>
>-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
>r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
>Send "info", "help", or "[un]subscribe"
>(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
>_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._


-- 
--------------------------------------
Don MacQueen
Environmental Protection Department
Lawrence Livermore National Laboratory
Livermore, CA, USA
--------------------------------------
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._



More information about the R-help mailing list