【发布时间】:2017-07-26 19:03:04
【问题描述】:
我有一个广泛的数据集,我想通过对每 50 个变量进行分组并将它们保存为单独的数据框来对其进行子集化,以便进一步分析。
df1 <- df[,1:50]
df2 <- df[,51:100] etc
有没有办法结合 purrr 和 dplyr 来循环整个数据集来实现这一点?
【问题讨论】:
我有一个广泛的数据集,我想通过对每 50 个变量进行分组并将它们保存为单独的数据框来对其进行子集化,以便进一步分析。
df1 <- df[,1:50]
df2 <- df[,51:100] etc
有没有办法结合 purrr 和 dplyr 来循环整个数据集来实现这一点?
【问题讨论】:
我们可以通过%/% 创建一个分组变量split 到'data.frame's 的list。
lst <- split.default(df, (seq_len(ncol(df))-1) %/%50 + 1)
最好将数据集保存在list 中,而不是在全局环境中创建多个对象。但是,如果我们需要它,一种选择是list2env
list2env(setNames(lst, paste0("df", seq_along(lst))), envir = .GlobalEnv)
df <- as.data.frame(matrix(seq_len(1200), 10, 120))
【讨论】:
ceiling(sequence(NROW(df))/50) 也可以用作split 的分组因子