splitByDate: Divide up a data frame by time

View source: R/splitByDate.R

splitByDateR Documentation

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(s)

David Carslaw

Examples

# 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"
)

davidcarslaw/openair documentation built on Feb. 20, 2025, 1:45 a.m.