Я хотел бы внести отдельные складки в глобальную среду после использования caret::createFolds
.Рабочий пример приведен ниже.
# Load libraries
library(tibble)
library(caret)
# Set the seed so example is reproducible
set.seed(123)
# Create example data set
df1 <- tibble(id = seq(1, 100, by = 1),
gender = as.factor(rbinom(n = 100, size = 1, prob = 0.50)),
working = as.factor(rbinom(n = 100, size = 1, prob = 0.40)),
pweight = sample(50:500, 100, replace = TRUE))
# Create 5 folds
folds <- createFolds(df1$id, k = 5)
Это создает 5 наборов данных с 20 наблюдениями в каждом, как и ожидалось.Теперь я хотел бы перенести каждый из этих наборов данных в глобальную среду.Я могу сделать это индивидуально с помощью следующих команд:
fold1 <- df1[folds[[1]], ]
fold2 <- df1[folds[[2]], ]
fold3 <- df1[folds[[3]], ]
fold4 <- df1[folds[[4]], ]
fold5 <- df1[folds[[5]], ]
Но я хотел бы написать функцию или цикл, чтобы сделать это более кратко.В моем реальном примере у меня 20 сгибов, так что это довольно много кода.Мне бы хотелось, чтобы сгибы были именами последовательно (то есть, fold1, fold2, fold3 и т. Д.).
Я пытался list2env(folds, envir = .GlobalEnv)
, но это не приводит отдельные наборы данных в глобальную среду.
Я все еще учусь, как наилучшим образом использовать функции, поэтому любое объяснение также будет высоко ценится.