标题几乎说明了这一点。我有一个数据框,有7百万行,对我来说太大了,我可以在没有机器崩溃的情况下进行分析。我想将其拆分为100个具有70,000行的较小数据帧,并使第101个数据帧具有剩余行(< 70,000)。这似乎是非平凡的。
我知道我可以手动计算n+1
数据框的大小,删除它,然后按以下方式使用split
函数:
d <- split(my_data_frame,rep(1:100,each=70,000))
但我有多个大型数据框,所有这些计算都很繁琐。有替代解决方案吗?
答案 0 :(得分:5)
这样的事情怎么样:
df <- data.frame(x = 1:723500, y = runif(7235000))
split(df, rep(1:100, each = round(NROW(df) / 100, -4)))
或者抽象一些:
num_dfs <- 100
split(df, rep(1:num_dfs, each = round(NROW(df) / num_dfs, -4)))
您可能需要考虑caret
包中的内容,例如:caret::createFolds(df$x)