#' Create a list of resample objects
#'
#' @param data A data frame
#' @param idx A list of integer vectors of indexes.
#' @seealso \code{\link{resample}} generates a single resample object.
#' @return A \code{list} of \code{\link[modelr]{resample}} objects.
#' @export
#' @examples
#' resample_lst(mtcars, list(1:3, 4:6, 7:10))
resample_lst <- function(data, idx) {
map(idx, resample, data = data)
}
#' Is it a resample object?
#'
#' Checks whether an object inherits from \code{\link[modelr]{resample}}.
#'
#' @param x An object
#' @return \code{TRUE} or \code{FALSE}
#' @export
is.resample <- function(x) inherits(x, "resample")
#' @export
#' @importFrom purrr map_lgl
c.resample <- function(...) {
objs <- list(...)
if (length(objs) == 1) return(objs[[1]])
if (!all(map_lgl(objs, is.resample))) {
stop("All objects must inherit from class `resample`.",
call. = FALSE)
}
identical_data <- function(x) identical(x[["data"]], objs[[1]][["data"]])
if (!all(map_lgl(objs[-1], identical_data))) {
stop("All resample objects must have identical data", call. = FALSE)
}
resample(objs[[1]][["data"]],
flatten_int(map(objs, as.integer)))
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.