R/AddInterval.R

Defines functions AddInterval

Documented in AddInterval

#' AddInterval
#'
#' @param intervals intervals
#' @param interval interval
#' @param idx idx
#' @param minYear minYear
#' @param maxYear maxYear
#'
#' @return data.table
#'
#' @export
AddInterval <- function(
  intervals,
  interval,
  idx = NULL,
  minYear = 1980L,
  maxYear = 2016L
) {
  if (!is.null(idx) && idx %between% c(1, nrow(intervals))) {
    intervals[idx, colnames(intervals) := interval]
    intervals <- copy(intervals)
  } else {
    intervals <- rbind(intervals, interval)
    intervals <- intervals[order(StartYear)]
  }

  intervals[1, StartYear := minYear]
  intervals[nrow(intervals), EndYear := maxYear]
  endYears <- intervals[seq_len(nrow(intervals) - 1) + 1, c(StartYear, maxYear)]
  intervals[, EndYear := endYears]

  return(intervals)
}
nextpagesoft/hivEstimatesAccuracy documentation built on Sept. 17, 2024, 5 a.m.