Create paired indices for bivariate cross-validation Ensures that paired observations (e.g., u_wind and v_wind at same location) are kept together in the same fold

create_paired_cv_splits(data, loc_col, group, k, seed = NULL)

Arguments

data

data frame containing the observations

loc_col

character vector of column names defining locations (e.g., c("lon", "lat") or c("x", "y"))

group

character, name of the group column (e.g., "direction" for wind data)

k

number of folds

seed

random seed

Value

list with test_idx and train_idx, each containing k lists of indices

Examples

# Example with wind data
data_long <- data.frame(
  lon = rep(c(1, 2, 3, 4), 2),
  lat = rep(c(1, 1, 2, 2), 2), 
  direction = rep(c("u_wind", "v_wind"), each = 4),
  wind = rnorm(8)
)
splits <- create_paired_cv_splits(data_long, c("lon", "lat"), "direction", k = 2)