标题几乎说明了它.我的数据框有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)
但是我有多个大型数据帧,所有这些计算都很繁琐.有替代解决方案吗?
这样的事情怎么样:
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)