如何使用 R 将数据集划分为 N 个大小相等的分区?我试过类似的东西
for (i in 1:100){data[i] <- full_data[i:(100000*i),]}
这显然是行不通的,但希望能对我想要完成的工作有所了解。完整的数据集有 1,000,000 行并且已经是随机顺序的。我想要 100 个相等且独立的数据集,每个数据集 10,000 行。
应该这样做,假设data
是一个列表:
data <- list()
for (i in 1:100){data[[i]] <- full_data[((i-1)*10000+1):(i*10000),]}
您可以创建索引的分位数组(例如,您想要精确的 n 组而不必计数)
data <- data.frame(1:1000000)
xtile <- function (x, n)
{
cuts <- quantile(x, probs = seq(0, 1, length = n + 1))
cut(x, breaks = cuts, include.lowest = TRUE)
}
group <- xtile(1:nrow(data), 100)
all(table(group)== 10000)
data.spl <- split(data, group)
data.spl[[2]]
我相信 cut2() 函数也会平均分区,并且您可以使用参数设置分区数。