Nothing
#' Prepare an existing data set for plotting
#'
#' Convert an existing data set in a ready-to-plot data set.
#'
#' Additional columns if the data set are directly passed to the output.
#'
#' @param data A data frame or tibble
#' @param region The column name of the regions/sections in the plot.
#' @param name The column name of the names of the chronological units. Must be
#' a character string.
#' @param start The column name of the start dates of the chronological units.
#' @param end The column name of the end date of the chronological units.
#' @param level The column name of the level of the chronological unit.
#' @param add The column name of the columns which signals whether the
#' chronological units within a geographical area should be drawn separately.
#'
#' @return A tibble with chronological data ready-to-use for plotting with
#' \code{\link{plot_chronochrt}}.
#'
#' @export
#'
#' @examples
#' # Create example data set
#' data <- data.frame(Location = c("A", "B"),
#' Dynasty = c("a", "a"),
#' Begin = -100,
#' End = c(200, 150),
#' Subunit = 1,
#' Parallel = FALSE)
#'
#' # Convert to chronological data set
#' chrons <- convert_to_chron(data = data,
#' region = Location,
#' name = Dynasty,
#' start = Begin,
#' end = End,
#' level = Subunit,
#' add = Parallel)
convert_to_chron <- function(data, region, name, start, end, level, add)
{
if (!is.data.frame(data)) {
stop("Wrong input format: ", substitute(data), " must be a data frame or tibble.")
}
pos <- tidyselect::eval_rename(rlang::expr(c(region = {{region}}, name = {{name}}, start = {{start}}, end = {{end}}, level = {{level}}, add = {{add}})), data)
names(data)[pos] <- names(pos)
if (!all(is.character(data$region), is.character(data$name), is.numeric(data$start) | is.character(data$start), is.numeric(data$end) | is.character(data$end), is.numeric(data$level), is.logical(data$add))) {
stop("One or more columns of the data set contain incompatible data. Data must be strings (region, name), numbers (start, end), whole numbers (level), and logical (add).")
}
if (!all(round(data$level) == data$level)) {
stop("Wrong input format: level must contain only whole numbers (1, 2, 3, ...)")
}
data
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.