将数据帧拆分为相等的部分并将每个部分存储为单独的数据帧
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" 函数的文档。
我有一个大数据框,我想将其分成多个等份的较小数据框。
样本 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" 函数的文档。