R:为什么负索引不能创建补码集?



我正在尝试创建训练、验证和测试数据集。(在我将数据框过滤到适当的数据集之前,我试图用每个数据集将包含的行列表创建向量。
有654个观察值,我打算把354个放在训练中,200个放在验证中,100个放在测试中。下面是我使用的代码:

x <- 1:654
train_ind <- sample(x, 354)
rest <- x[-train_ind]
length(rest)
[1] 300
valid <- sample(rest, 200)
length(valid)
[1] 200
test <- rest[-valid]
length(test)
[1] 210

我不明白为什么test对象是210!
我认为,由于valid的长度只有200,如果我取rest(300)并对valid进行负索引,那么我将只剩下100。
感谢大家对我做错的地方的建议。
谢谢你

你可以只是打乱索引(抽样而不替换),然后获得前几个用于测试,其他用于训练。

indices <- sample(seq(20))
test <- indices[1:10]
train <- indices[11:20]
train
#>  [1] 10  8 12  1  7 20 13 18  4 11
test
#>  [1] 19  3 15  2  6  9 16 14 17  5

由reprex包(v2.0.0)在20121-09-09创建

最新更新