data.frame 循环创建

data.frame creation with loop

嗨,我正在尝试创建 10 个子训练集(来自 75% 的训练集),从数据帧 (DB) 中随机提取循环。我正在使用

smp_size<- floor((0.75* nrow(DB))/10) 
train_ind<-sample(seq_len(nrow(DB)), size=(smp_size)) 

training<- matrix(ncol=(ncol(DB)), nrow=(smp_size))
for (i in 1:10){
  training[i]<-DB[train_ind, ]
}

怎么了?

要将数据集划分为 10 个大小相等的子集,您可以使用以下方法:

# Randomly order the rows in your training set:
DB <- DB[order(runif(nrow(DB))), ]
# You will create a sequence 1,2,..,10,1,2,...,10,1,2.. you will use to subset
inds <- rep(1:10, nrow(DB)/10)
# split() will store the subsets (created by inds) in a list
subsets <- split(DB, inds)

但是请注意,split() 只会为您提供相同大小的子集。因此,可能(并且很可能会)发生某些观察结果未包含在任何子集中的情况。

如果您希望使用所有观察结果,导致某些子集大于其他子集,请改用 inds <- rep(1:10, length.out = nrow(DB))