将数据帧拆分为相等的部分并将每个部分存储为单独的数据帧

Split dataframe into equal parts and store each part as a separate data frame

我有一个大数据框,我想将其分成多个等份的较小数据框。

样本 df:

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

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

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

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

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

有什么想法吗?

你想要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

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

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

至少对我来说,这是我信任的东西,同时我想阅读我使用的任何 "new" 函数的文档。