在R中创建数据库的相等分区

时间:2014-04-10 19:08:37

标签: r for-loop partition

如何使用R将数据集划分为N个大小相等的分区?我尝试过像

这样的东西
    for (i in 1:100){data[i] <- full_data[i:(100000*i),]}

这显然不起作用,但希望能够了解我想要实现的目标。完整数据集有1,000,000行,并且已经是随机顺序。我想要100个相等且独立的数据集,每行10,000行。

3 个答案:

答案 0 :(得分:0)

应该这样做,假设data是一个列表:

data <- list()
for (i in 1:100){data[[i]] <- full_data[((i-1)*10000+1):(i*10000),]}

答案 1 :(得分:0)

您可以创建分位数 - 索引组(例如,您只需要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]]

答案 2 :(得分:0)

我相信cut2()函数也会同等分区,你可以用参数设置分区数。