【问题标题】:Split dataframe into equal parts and store each part as a separate data frame [duplicate]将数据帧分成相等的部分并将每个部分存储为单独的数据帧[重复]
【发布时间】:2018-03-03 02:52:17
【问题描述】:

我有一个大数据框,我想将其拆分为多个相等部分的较小数据框。

样本df:

df <- data.frame(x = 1:100, y = runif(100))

我有将它们分成相等部分的代码(比如说 10 个数据帧,每个数据帧 10 行)

x=split(df, (seq(nrow(df))-1) %/% 10) 

并将它们存储在列表x 中,但我似乎无法弄清楚如何将x 的每个部分转换为单独的数据帧。

我尝试使用lapply,但我的方法没有达到我想要的效果

有什么想法吗?

【问题讨论】:

    标签: r data-manipulation


    【解决方案1】:

    你想要list2env:

    list2env(setNames(x,paste0("df",1:10)),environment())
    # df3
    # x         y
    # 21 21 0.4935413
    # 22 22 0.1862176
    # 23 23 0.8273733
    # 24 24 0.6684667
    # 25 25 0.7942399
    # 26 26 0.1079436
    # 27 27 0.7237109
    # 28 28 0.4112744
    # 29 29 0.8209463
    # 30 30 0.6470602
    

    【讨论】:

      【解决方案2】:

      依靠更基本的功能,你可以做一个简单的循环:

      for (i in seq(from = 0, to = 90, by = 10)) {
        assign(
          paste0("df", i/10), 
          df[(1 + i):(10 + i), ]
        )
      }
      

      至少对我来说,当我想阅读我使用的任何“新”功能的文档时,我会信任它。

      【讨论】:

        猜你喜欢
        • 2019-05-06
        • 2018-02-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-17
        • 1970-01-01
        • 2017-05-28
        相关资源
        最近更新 更多