Learn R Programming

zoo (version 1.8-1)

window.zoo: Extract/Replacing the Time Windows of Objects

Description

Methods for extracting time windows of "zoo" objects and replacing it.

Usage

# S3 method for zoo
window(x, index. = index(x), start = NULL, end = NULL, …)
# S3 method for zoo
window(x, index. = index(x), start = NULL, end = NULL, …) <- value

Arguments

x

an object.

index.

the index/time window which should be extracted.

start

an index/time value. Only the indexes in index which are greater or equal to start are used. If the index class supports comparisons to character variables, as does "Date" class, "yearmon" class, "yearqtr" class and the chron package classes "dates" and "times" then start may alternately be a character variable.

end

an index/time value. Only the indexes in index which are lower or equal to end are used. Similar comments about character variables mentioned under start apply here too.

value

a suitable value object for use with window(x).

currently not used.

Value

Either the time window of the object is extracted (and hence return a "zoo" object) or it is replaced.

See Also

zoo

Examples

Run this code
# NOT RUN {
## zoo example
x.date <- as.Date(paste(2003, rep(1:4, 4:1), seq(1,19,2), sep = "-"))
x <- zoo(matrix(rnorm(20), ncol = 2), x.date)
x

window(x, start = as.Date("2003-02-01"), end = as.Date("2003-03-01"))
window(x, index = x.date[1:6], start = as.Date("2003-02-01"))
window(x, index = x.date[c(4, 8, 10)])
window(x, index = x.date[c(4, 8, 10)]) <- matrix(1:6, ncol = 2)
x

## for classes that support comparisons with "character" variables
## start and end may be "character".
window(x, start = "2003-02-01")

## zooreg example (with plain numeric index)
z <- zooreg(rnorm(10), start = 2000, freq = 4)
window(z, start = 2001.75)
window(z, start = c(2001, 4))

## replace data at times of d0 which are in dn
d1 <- d0 <- zoo(1:10) + 100
dn <- - head(d0, 4)
window(d1, time(dn)) <- coredata(dn)

## if the underlying time index is a float, note that the index may
## print in the same way but actually be different (e.g., differing
## by 0.1 second in this example)
zp <- zoo(1:4, as.POSIXct("2000-01-01 00:00:00") + c(-3600, 0, 0.1, 3600))
## and then the >= start and <= end may not select all intended
## observations and adding/subtracting some "fuzz" may be needed
window(zp, end = "2000-01-01 00:00:00")
window(zp, end = as.POSIXct("2000-01-01 00:00:00") + 0.5)
# }

Run the code above in your browser using DataLab