【问题标题】:Is there a function to split a large dataframe into n smaller dataframes of equal size (by row) and have an n+1 dataframe of smaller size?是否有一个函数可以将一个大数据帧拆分成 n 个大小相等的较小数据帧(按行)并有一个 n+1 个较小的数据帧?
【发布时间】:2015-06-14 18:18:16
【问题描述】:

标题几乎说明了这一点。我有一个包含 7 多万行的数据框,对于我来说太大了,无法在机器不崩溃的情况下进行分析。我想将其拆分为 100 个具有 70,000 行的较小数据帧,并让第 101 个数据帧具有剩余的行(

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

d <- split(my_data_frame,rep(1:100,each=70,000))

但是我有多个大型数据框,并且进行所有这些计算很乏味。有其他解决方案吗?

【问题讨论】:

  • 你想把这些写入磁盘吗?

标签: r split


【解决方案1】:

这样的事情怎么样:

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)

【讨论】:

    猜你喜欢
    • 2022-01-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-08-19
    • 1970-01-01
    • 1970-01-01
    • 2021-09-27
    相关资源
    最近更新 更多