使用 dplyr 进行子集化

Subsetting using dplyr

我有一个广泛的数据集,我想通过将每 50 个变量分组并将它们保存为单独的数据框来对其进行子集化,以便进行进一步分析。

df1 <- df[,1:50]
df2 <- df[,51:100] etc

有没有办法结合 purrr 和 dplyr 循环遍历整个数据集来实现这个?

我们可以 split 通过创建一个分组变量 %/%list of 'data.frame's.

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))