我想划分一个不平衡的数据集.我当前的数据集有7个类,有些有10000个样本,有些有500个样本.我基本上希望将数据帧大小限制为每类500个观察值(例如,500个观察值*7个类),因此所有类都有大约500个观察值,而不是一些有10.000个,其他有2.000个,等等.
目前,我正在使用caret软件包进行分区,如下所示:
index <- createDataPartition(snv_data$clade, p = .70, list = FALSE)
train <- snv_data[index,]
test <- snv_data[-index,]
我怎样才能使新的数据框架在每个类中的观测值分布均匀呢?
提前谢谢!
编辑:
我想出了一个不太"理想"的解决方案,但它如期发挥了作用:
# i = 1
#
#
# for (row in 1:nrow(snv_data)) {
#
# if (snv_data$clade[row] == "20I (Alpha, V1)" ) {
#
# snv_data = snv_data[-c(row),]
# i = i+1
# if (i == 4600) {
# stop("end")
# }
#
# }
#
# }