r - 返回数据框列表中的唯一行
问题描述
我有一个数据框列表。我想在每个数据帧中找到唯一的行,然后将该唯一数据帧列表输出到 1 个新数据帧中。
从...开始y <- list(mtcars[,c(2,4)], iris[,4:5])
我首先重命名每个数据框中的列
colnames <- c("colA", "colB")
y <- lapply(y, setNames, colnames)
要单独查找唯一行,我可以使用
y1 <- unique(y[[1]])
y2 <- unique(y[[2]])
但当然,我的数据框列表要大得多,我想将其应用到大约 100 个数据框的整个列表中。我怎样才能做到这一点?我试过lapply
但得到一个错误。
上面的虚拟数据会引发错误:
唯一 [[x]] 中的错误:“闭包”类型的对象不是子集
我的真实数据抛出错误:
mydf[[x]] 中的错误:无效的下标类型“列表”
我知道我的过程的最后一步,将所有内容放入一个大数据框中,是一个rbind
调用(单独:rbind(y1,y2)
,但我也不确定如何运行rbind
〜100个数据框的列表(现在只有非重复的行)
解决方案
对于列表中的每个元素应用unique
,然后用于do.call
组合数据框。
result <- do.call(rbind, lapply(y, unique))
推荐阅读
- python - 在 Pycharm Python 代码中找不到模块“Pandas”和“Numpy”
- gdb - GDB 打印整个指针树
- three.js - Can I create point cloud from depth and rgb image?
- python - 将熊猫系列转换为对象数组,如 javascript
- azure-cognitive-services - Microsoft 认知面部 API 人员组创建错误
- mysql - LIMIT 在 MySQL 8.0 的存储过程中不能使用用户定义的参数
- angular - Angular nativeElement contains() 无法按预期为文档工作:单击
- python - 将我的 jupyter 笔记本设置为使用环境的 python 版本
- java - 使用 MySQL 容器作为依赖项在本地运行 Spring Boot?
- laravel-4 - 在查找查询中传递两个 id 以更新 laravel 4.2 中的状态数据库