如何制作成比例相等大小的随机采样训练集?

时间:2018-11-12 18:09:32

标签: r

我想制作一系列随机采样的训练集,它们正好是完整数据集大小的75%。下面的代码是我要实现的示例,除了我总是想要75个1的样本和25个2的样本。这段代码只给我提供了接近那些大小但不精确的样本。

column <- c(rep("A", 40), rep("B", 60))
data <- as.data.frame(column)            
index <- sample(2,100, replace=TRUE, prob=c(0.75,0.25))

我希望能够在不使用其他程序包的情况下实现这种分区,并且尽可能使用基数R。软件包似乎在大多数情况下都不适合我,这就是为什么我发现很难找到解决方案的原因。

1 个答案:

答案 0 :(得分:1)

这就是sample的工作方式。您可以考虑以下两个步骤:

idxTrain <- sample(100, 75)
head(idxTrain)
# [1] 54 70  3 42 72 67
length(idxTrain)
# [1] 75
idxTest <- setdiff(1:100, idxTrain)
head(idxTest)
# [1]  5  7 13 14 19 24
length(idxTest)
# [1] 25