如何在r中选择子样本?

Qua*_*pik 0 r sample dataset

我需要使用交叉验证方法对R中的预测模型进行回测。

因此,我应该从数据集中的5个观测值中选择4个用于训练目的,而将其余的1个用于测试。

现在,假设x是由100个观测值组成的总数据集,我知道您可以x1通过键入以下内容来选择R中的一个子样本:

x1 <- x[1:80, ]
Run Code Online (Sandbox Code Playgroud)

这样,我从数据集中的第五个观测值中选择了前四个。

我应该怎么做才能选择第五个子样本中的第二个,即观察值[1:20][40:100]

任何提示将不胜感激。如果问题不清楚,请在评论中告诉我。

Jot*_*ota 5

您可以使用插入符号包具有很多有用的功能来进行预测建模。该createDataPartition功能可以很好地创建测试和训练分区,但是它是随机的。有没有保证每个值将在训练/测试集出现正好4倍,因为如果你手动分割使用这将是:x[1:80]x[c(1:20,41:100)]x[c(1:40,61:100)]x[c(1:20,81:100)]x[21:100]

这是一个使用示例createDataPartition

set.seed(1001)
x<- sample(1:1000, 100)

library(caret)
folds <- createDataPartition(x, times=5, p = 4/5) # p = percentage of data to include
                                                  # times = number of partitions
Run Code Online (Sandbox Code Playgroud)

folds包含来自的值的索引x,因此您可以像这样使用它:

x[folds[[1]]] # first training set
x[-folds[[1]]] # first test set

x[folds[[2]]] # second training set
x[-folds[[2]]] # second test set

# and so on
Run Code Online (Sandbox Code Playgroud)