我想制作一系列随机采样的训练集,它们正好是完整数据集大小的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。软件包似乎在大多数情况下都不适合我,这就是为什么我发现很难找到解决方案的原因。
答案 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