r - 如何将列表中的 data.frames 合并/附加到一起并删除重复项
问题描述
我有一个列表,其中包含多个具有相同名称设置的 data.frame。我想将它们组合成一个 data.frame 并删除重复项。我怎样才能做到这一点?
可以使用代码构建示例数据:
lst1 <- list(data1 = mpg, data2 = mpg, data3 = mpg)
结果将是mpg
。
某事喜欢:
非常感谢。
解决方案
也许这个。您可以为列表中的每个数据框创建一个 id,绑定后您可以排除重复的值:
library(dplyr)
#Data
lst1 <- list(data1 = mpg, data2 = mpg, data3 = mpg)
lst1 <- lapply(lst1, function(x) {x$id<-1:nrow(x);return(x)})
#Bind
df <- do.call(bind_rows,lst1)
df2 <- df[!duplicated(df$id),]
df2$id <- NULL
更新:要保留数据源:
library(dplyr)
#Data
lst1 <- list(data1 = mpg, data2 = mpg, data3 = mpg)
lst1 <- lapply(lst1, function(x) {x$id<-1:nrow(x);return(x)})
#Bind
df <- bind_rows(lst1,.id = 'data')
df2 <- df[!duplicated(df$id),]
df2$id <- NULL
推荐阅读
- c - 为什么增量运算符会修改原始值而位运算符不会?
- excel - VBA查找命名列和过滤器 - 几乎可以工作的宏
- c# - 在 .NET Core 2+ 中以 _Layout 显示模型并创建收藏夹列表
- apache-spark - 在用压缩文件替换 HDFS 中的小文件时,如何避免破坏活动的 Hive/Presto 查询?
- reactjs - 我如何使用蚂蚁设计在反应 js 中禁用小屏幕上的 1 个选项卡
- graph - 如何订阅整个枪图的变化?
- javascript - jquery过滤器搜索应该根据文本选择匹配的DIV
- java - 反应本机图像获取/上传
- angular - PrimeNG 表单验证
- sql - 需要帮助解决慢查询