Learn R Programming

openair (version 2.19.0)

splitByDate: Divide up a data frame by time

Description

This function partitions a data frame up into different time segments. It produces a new column called controlled by name that can be used in many openair functions. Note that there must be one more labels than there are dates.

Usage

splitByDate(
  mydata,
  dates = "1/1/2003",
  labels = c("before", "after"),
  name = "split.by",
  format = c("%d/%m/%Y", "%Y/%m/%d", "%d/%m/%Y %H:%M:%S",
    "%Y/%m/%d %H:%M:%S")
)

Arguments

mydata

A data frame containing a date field in an hourly or high resolution format.

dates

A date or dates to split data by. Can be passed as R date(time) objects or as characters. If passed as a character, splitByDate() expects either "DD/MM/YYYY" or "YYYY/MM/DD" by default, but this can be chaned using the format argument.

labels

Labels for each time partition. Should always be one more label than there are dates; for example, if dates = "2020/01/01, splitByDate() requires one label for before that date and one label for after.

name

The name to give the new column to identify the periods split. Defaults to "split.by".

format

When dates are provided as character strings, this option defines the formats splitByDate() will use to coerce dates into R Date or POSIXCt objects. Passed to lubridate::as_date() or lubridate::as_datetime(). See strptime() for more information.

Author

David Carslaw

Examples

Run this code
# split data up into "before" and "after"
mydata <- splitByDate(mydata,
  dates = "1/04/2000",
  labels = c("before", "after")
)

# split data into 3 partitions
mydata <- splitByDate(mydata,
  dates = c("1/1/2000", "1/3/2003"),
  labels = c("before", "during", "after")
)

# if you have modelled data - could split into modelled and measured by the
# break date
dummy <- data.frame(
  date = Sys.Date() + (-5:5),
  nox = 100 + seq(-50, 50, 10)
)
splitByDate(dummy,
  dates = Sys.Date(),
  labels = c("measured", "modelled"),
  name = "data_type"
)

Run the code above in your browser using DataLab