在插入符号:: createFolds之后将单个折叠带入全局环境的功能

时间:2018-06-02 03:43:14

标签: r cross-validation r-caret

我想在使用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),但这并没有将各个数据集带入全球环境。

我仍在学习如何最好地使用功能,所以任何解释也会非常感激。

0 个答案:

没有答案