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=1
到 row= 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,]
我正在寻找一种 稳健 的方法来划分数据集而不使用 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=1
到 row= 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,]