Learn R Programming

rsample (version 0.1.0)

initial_split: Simple Training/Test Set Splitting

Description

initial_split creates a single binary split of the data into a training set and testing set. initial_time_split does the same, but takes the first prop samples for training, instead of a random selection. training and testing are used to extract the resulting data.

Usage

initial_split(data, prop = 3/4, strata = NULL, breaks = 4, pool = 0.1, ...)

initial_time_split(data, prop = 3/4, lag = 0, ...)

training(x)

testing(x)

Arguments

data

A data frame.

prop

The proportion of data to be retained for modeling/analysis.

strata

A variable that is used to conduct stratified sampling to create the resamples. This could be a single character value or a variable name that corresponds to a variable that exists in the data frame.

breaks

A single number giving the number of bins desired to stratify a numeric stratification variable.

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.

...

Not currently used.

lag

A value to include a lag between the assessment and analysis set. This is useful if lagged predictors will be used during training and testing.

x

An rsplit object produced by initial_split

Value

An rsplit object that can be used with the training and testing functions to extract the data in each split.

Details

The strata argument causes the random sampling to be conducted within the stratification variable. This can help ensure that the number of data points in the training data is equivalent to the proportions in the original data set. (Strata below 10% of the total are pooled together.)

Examples

Run this code
# NOT RUN {
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))  # no lag

# With 12 period lag
drinks_lag_split <- initial_time_split(drinks, lag = 12)
train_data <- training(drinks_lag_split)
test_data <- testing(drinks_lag_split)
c(max(train_data$date), min(test_data$date))  # 12 period lag

# }

Run the code above in your browser using DataLab