% Generated by roxygen2: do not edit by hand
% Please edit documentation in R/initial_split.R
\name{initial_split}
\alias{initial_split}
\alias{initial_time_split}
\alias{training}
\alias{training.default}
\alias{training.rsplit}
\alias{testing}
\alias{testing.default}
\alias{testing.rsplit}
\alias{group_initial_split}
\title{Simple Training/Test Set Splitting}
\usage{
initial_split(data, prop = 3/4, strata = NULL, breaks = 4, pool = 0.1, ...)

initial_time_split(data, prop = 3/4, lag = lifecycle::deprecated(), ...)

training(x, ...)

\method{training}{default}(x, ...)

\method{training}{rsplit}(x, ...)

testing(x, ...)

\method{testing}{default}(x, ...)

\method{testing}{rsplit}(x, ...)

group_initial_split(data, group, prop = 3/4, ..., strata = NULL, pool = 0.1)
}
\arguments{
\item{data}{A data frame.}

\item{prop}{The proportion of data to be retained for modeling/analysis.}

\item{strata}{A variable in \code{data} (single character or name) used to conduct
stratified sampling. When not \code{NULL}, each resample is created within the
stratification variable. Numeric \code{strata} are binned into quartiles.}

\item{breaks}{A single number giving the number of bins desired to stratify a
numeric stratification variable.}

\item{pool}{A proportion of data used to determine if a particular group is
too small and should be pooled into another group. We do not recommend
decreasing this argument below its default of 0.1 because of the dangers
of stratifying groups that are too small.}

\item{...}{These dots are for future extensions and must be empty.}

\item{lag}{\ifelse{html}{\href{https://lifecycle.r-lib.org/articles/stages.html#deprecated}{\figure{lifecycle-deprecated.svg}{options: alt='[Deprecated]'}}}{\strong{[Deprecated]}} This is deprecated, please lag
your predictors prior to splitting the dataset.}

\item{x}{An \code{rsplit} object produced by \code{initial_split()} or
\code{initial_time_split()}.}

\item{group}{A variable in \code{data} (single character or name) used for
grouping observations with the same value to either the analysis or
assessment set within a fold.}
}
\value{
An \code{rsplit} object that can be used with the \code{training()} and \code{testing()}
functions to extract the data in each split.
}
\description{
\code{initial_split()} creates a single binary split of the data into a training
set and testing set. \code{initial_time_split()} does the same, but takes the
\emph{first} \code{prop} samples for training, instead of a random selection.
\code{group_initial_split()} creates splits of the data based
on some grouping variable, so that all data in a "group" is assigned to
the same split.
}
\details{
\code{training()} and \code{testing()} are used to extract the resulting data.

To avoid data leakage when using lagged variables, lag the predictors before
the initial split.

With a \code{strata} argument, the random sampling is conducted
\emph{within the stratification variable}. This can help ensure that the
resamples have equivalent proportions as the original data set. For
a categorical variable, sampling is conducted separately within each class.
For a numeric stratification variable, \code{strata} is binned into quartiles,
which are then used to stratify. Strata below 10\% of the total are
pooled together; see \code{\link[=make_strata]{make_strata()}} for more details.
}
\examples{
\dontshow{if (rlang::is_installed("modeldata")) withAutoprint(\{ # examplesIf}
set.seed(1353)
car_split <- initial_split(mtcars)
train_data <- training(car_split)
test_data <- testing(car_split)

data(drinks, package = "modeldata")
drinks_split <- initial_time_split(drinks)
train_data <- training(drinks_split)
test_data <- testing(drinks_split)
c(max(train_data$date), min(test_data$date))

set.seed(1353)
car_split <- group_initial_split(mtcars, cyl)
train_data <- training(car_split)
test_data <- testing(car_split)
\dontshow{\}) # examplesIf}
}
