【问题标题】:How to split a dataframe a list of dataframes (while dropping the grouped column)如何将数据框拆分为数据框列表(同时删除分组列)
【发布时间】:2020-06-12 20:03:20
【问题描述】:

有人问过类似的问题,但我想不出最后一步。

如何将大型数据框拆分为 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”列。如果不遍历列表中的每个数据框,有没有办法删除此列?

谢谢!

【问题讨论】:

    标签: r dataframe


    【解决方案1】:

    当我们执行split 时,我们可以子集化

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

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

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

    或者另一个选项是来自dplyrgroup_split 并使用.keep,默认情况下为TRUE

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

    【讨论】:

      猜你喜欢
      • 2022-12-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-20
      • 1970-01-01
      • 2022-01-20
      • 2013-08-04
      相关资源
      最近更新 更多