R 将数据集分为60%、20%、20%

R 将数据集分为60%、20%、20%,r,validation,split,dataset,training-data,R,Validation,Split,Dataset,Training Data,我正试图从2组数据转移到3组数据,如上述问题所述。以下是我使用的脚本: set.seed(125) d <- sample(x = nrow(db), size = nrow(db) * 0.60, ) train60 <-db[d, ] valid40 <-db[-d, ] set.seed(125) d如果我理解正确,那么您希望样本的60%、20%和20%不重复。我以iris数据为例,它包含150行和5列 samp <- sample(1:nrow(iris),.6

我正试图从2组数据转移到3组数据,如上述问题所述。以下是我使用的脚本:

set.seed(125)
d <- sample(x = nrow(db), size = nrow(db) * 0.60, )
train60 <-db[d, ]
valid40 <-db[-d, ]
set.seed(125)

d如果我理解正确,那么您希望样本的60%、20%和20%不重复。我以iris数据为例,它包含150行和5列

samp <- sample(1:nrow(iris),.6*nrow(iris)) ##60 and 40 bifurcation

train60 <- iris[samp,] ## This is the 60% chunk
remain40 <- iris[-samp,]  ## This is used for further bifurcation

samp2 <- sample(1:nrow(remain40),.5*nrow(remain40))

first20 <- remain40[samp2,] ## First chunk of 20%
secnd20 <- remain40[-samp2,] ## Second Chunk of 20%

Reduce("intersect",list(train60,first20,secnd20)) ##Check to find if there is any intersect , 0 rows means everything is fine and sample are not repetitive.

samp
db样本有效值的50%。。示例(valid40,nrow(valid40)/2)。也可以参见
modeler::crossv_mc
@halfer:关于在问题中添加“紧急”一词的道歉。你好,Jeppe&Pkr:非常感谢你回答我的“遇险”电话,并提供了对新手非常有用的详细解释。两个脚本都工作得很好!我想对你的两个答案都投赞成票,但不确定这个系统是否允许。
db <- data.frame(x=1:10, y=11:20)

set.seed(125)
d <- sample(x=nrow(db),size=nrow(db)*0.60,)

train60 <-db[d,]

valid40 <-db[-d,]
e <- sample(x=nrow(valid40),size=nrow(valid40)*0.50,)

train20 <-valid40[e,]
valid20 <- valid40[-e,]