R 中的数据分区

Data Partition in R

我正在寻找一种 稳健 的方法来划分数据集而不使用 sample() 函数,希望得到一些反馈。

事实上,我希望摆脱使用 sample()

所固有的 random 属性
samp<-data.frame(qldat)   # convert zoo time-series object to data.frame
ind <- sample(2,nrow(samp),replace = TRUE, prob=c(0.8,0.2))  # splitting
#data series between training and test sets
tsamp<- samp[ind==1,]  # training dataset
vsamp<- samp[ind==2,]  # test set

经过一些研究,我发现 subset() 可能有所帮助,但它可能涉及一些 hard-coding 数据集。通过 硬编码 我的意思是对于 80:20 split(%) 使用 nrow(samp),可以从 row=1row= 0.8 * nrow(samp) 例如,承认这可能不是一个非常有效的解决方案。

我也试过 createDataPartition(),但它不符合我的预期,因为 samp 没有任何我可以依赖的 categorical data 进行拆分(例如 createDataPartition(y=samp$categoricaldata,p=0.8, list=FALSE)

PS:我喜欢ind<-的地方是包含了prob=c(0.8,0.2),这样切片就自动整理出来了。因此,任何没有随机拆分 tsamp && vsamp 的类似想法将不胜感激。

最佳,

这是您要找的吗?

n <- nrow(samp)
train_i <- 1:round(0.8*n)
test_i <- round(0.8*n+1):n
train <- samp[train_i,]
test <- samp[test_i,]