openair (version 0.5-2)

selectByDate: Subset a data frame based on date

Description

Utility function to make it easier to select periods from a data frame before sending to a function

Usage

selectByDate(mydata, start = "1/1/2008", end = "31/12/2008",
year = 2008, month = 1, day = "weekday", hour = 1, use.local.tz = TRUE)

Arguments

mydata
A data frame containing a date field in hourly or high resolution format.
start
A start date in the form d/m/yyyy e.g. "1/2/1999".
end
An end date in the form d/m/yyyy e.g. "31/5/1999".
year
A year or years to select e.g. year = 1998:2004 to select 1998-2004 inclusive or year = c(1998, 2004) to select 1998 and 2004.
month
A month or months to select. Can either be numeric e.g. month = 1:6 to select months 1-6 (January to June), or by name e.g. month = c("January", "December"). Names can be abbreviated to 3 letters and be in lower or upper
day
A day or or days to select. For example day = c("Monday", "Wednesday"). Names can be abbreviated to 3 letters and be in lower or upper case. Also accepts "weekday" (Monday - Friday) and "weekend" for convenience.
hour
An hour or hours to select from 0-23 e.g. hour = 0:12 to select hours 0 to 12 inclusive.
use.local.tz
Used when start and end dates are supplied. The default is to use any time zone information supplied and if not, assume GMT/UTC.

Details

This function makes it much easier to select periods of interest from a data frame based on dates in a British format. Selecting date/times in R format can be intimidating for new users. This function can be used to select quite complex dates simply - see examples below. Dates are assumed to be inclusive, so start = "1/1/1999" means that times are selected from hour zero. Similarly, end = "31/12/1999" will include all hours of the 31st December. All options are applied in turn making it possible to select quite complex dates

Examples

Run this code
## select all of 1999
data.1999 <- selectByDate(mydata, start = "1/1/1999", end = "31/12/1999")
head(data.1999)
tail(data.1999)

# easier way
data.1999 <- selectByDate(mydata, year = 1999)

# more complex use: select weekdays between the hours of 7 am to 7 pm
sub.data <- selectByDate(mydata, day = "weekday", hour = 7:19)

# select weekends between the hours of 7 am to 7 pm in winter (Dec, Jan, Feb)
sub.data <- selectByDate(mydata, day = "weekend", hour = 7:19, month =
c("dec", "jan", "feb"))

Run the code above in your browser using DataLab