首页 > 解决方案 > 如何将数据框拆分为数据框列表(同时删除分组列)

问题描述

有人问过类似的问题,但我无法弄清楚最后一步。

如何将大型数据框拆分为 data.frames 列表并将行分组到特定数据框中的列?

例子:

#Load large dataframe
data <- mtcars

# split into a list based on "cyl" column
data_list <- split(data, f=data$cyl, drop = TRUE)

然后从这里我想从列表中的所有数据框中删除“cyl”列。如果不遍历列表中的每个数据框,有没有办法删除此列?

谢谢!

标签: rdataframe

解决方案


当我们做 时split,我们可以子集化

data_list <- split(data[setdiff(names(data), 'cyl')], f=data$cyl, drop = TRUE)

或者如果它已经创建,则使用

data_list <- lapply(data_list, subset, select = -cyl)

或者另一个选项group_split来自dplyr并使用.keep默认为 TRUE

library(dplyr)
data_list <- data %>% 
                 group_split(cyl, .keep = FALSE)

推荐阅读