是否有一个函数将大数据帧拆分为n个相同大小的较小数据帧(按行)并且具有较小尺寸的n + 1数据帧?

oor*_*ort 7 split r

标题几乎说明了它.我的数据框有7百万行,对我来说太大了,我的机器不会崩溃.我想将它拆分为100个具有70,000行的较小数据帧,并使第101个数据帧具有剩余行(<70,000).这似乎是非平凡的.

我知道我可以手动计算n+1数据帧的大小,删除它,然后split按以下方式使用该函数:

d <- split(my_data_frame,rep(1:100,each=70,000))
Run Code Online (Sandbox Code Playgroud)

但是我有多个大型数据帧,所有这些计算都很繁琐.有替代解决方案吗?

Jas*_*lns 5

这样的事情怎么样:

df <- data.frame(x = 1:723500, y = runif(7235000))
split(df, rep(1:100, each = round(NROW(df) / 100, -4)))
Run Code Online (Sandbox Code Playgroud)

或者抽象一些:

num_dfs <- 100
split(df, rep(1:num_dfs, each = round(NROW(df) / num_dfs, -4)))
Run Code Online (Sandbox Code Playgroud)

您可能需要考虑caret包中的某些内容,例如:caret::createFolds(df$x)