r - 如何将数据框拆分为数据框列表(同时删除分组列)
问题描述
有人问过类似的问题,但我无法弄清楚最后一步。
如何将大型数据框拆分为 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”列。如果不遍历列表中的每个数据框,有没有办法删除此列?
谢谢!
解决方案
当我们做 时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)
推荐阅读
- java - 如何查看我的字符串的更改?当前方法有什么问题?
- hyperledger-fabric - 如何使用超级账本结构中的链码访问 python 文件?
- java - 向Java中的SSH服务器发送命令(Jsch)时如何转义双引号而不是“引号”?
- ios - 由于 EXC_BAD_ACCESS,CATransaction 提交崩溃
- knockout.js - 无法绑定 $parent of knockout
- javascript - 语法突出显示 js 文件以匹配方法之间的句点
- python - 如何在 Python 中返回这个有效的 json 数据?
- javascript - 选中复选框时返回文本
- r - 在R中的模式之间替换文件中的多行
- xml - XQuery 使用 webdav ftp 搜索多个文件