我正在尝试编写一个函数,它接受一个数据框并将其拆分为多个数据框,每个指定的列数。 例如,如果有一个看起来像这样的数据框:
df <- data.frame(
x1 = rnorm(1000),
x2 = rnorm(1000),
x3 = rnorm(1000),
x4 = rnorm(1000),
x5 = rnorm(1000),
x6 = rnorm(1000)
)
我想将它拆分,比如说,每隔一列,并将其保存为它自己的数据框。 所以伪代码看起来像这样:
function(df){
split df every second column
save each group as it's own unique data frame (named A-C for this example)
}
最终结果意味着我有 3 个数据框,其中数据框 A 有两列(即 x1、x2),类似地 B 有两列(x3、x4),C 有两列(x5、x6)。
关于我如何实现这一点有什么建议吗?
最佳答案
我们可以使用 split.default
将两列拆分成一个 list
lst1 <- split.default(df, LETTERS[as.integer(gl(ncol(df), 2, ncol(df)))])
然后用write.csv
保存数据集
lapply(names(lst1), function(x) write.csv(lst1[[x]], paste0(x, ".csv")))
关于r - 在R中将数据帧拆分为n组数据帧的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59131111/