首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从数据文件列表中添加单个数据帧

如何从数据文件列表中添加单个数据帧
EN

Stack Overflow用户
提问于 2020-05-27 21:51:58
回答 1查看 35关注 0票数 2

我有一个数据列表,我想把列放在一起。为了举例说明,这里有一个虚拟集:

代码语言:javascript
运行
复制
Data1 <- data.frame(A = c(1, 2, 3, 4, 5),
                    B = c(2, 3, 5, 3, 10))
Data2 <- data.frame(A = c(1, 2, 3, 4, 6), 
                    C = c(3, 4, 8, 12, 2))
Data3 <- data.frame(A = c(1, 2, 3, 4, 6), 
                    D = c(4, 3, 1, 9, 2))
list <- list(Data1, Data2, Data3)

我希望输出如下所示:

代码语言:javascript
运行
复制
A  B  C  D
1  2  3  4
2  3  4  3
3  5  8  1
4  3 12  9
5 10 NA NA
6 NA  2  2

--我的真实数据在列表中有很多数据,我有很多列表,所以我希望代码不必显式地声明dataframes的名称,这是我一直在使用merge()函数做的。

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-05-27 21:53:56

我们可以将reducefull_join结合使用

代码语言:javascript
运行
复制
library(dplyr)
library(purrr)
reduce(list, full_join, by = 'A')

如果有许多list,将它们全部放在一个list中,在list上循环,然后使用reduce

代码语言:javascript
运行
复制
map(list(list1, list2, list3, ..., listn), ~ reduce(.x, full_join, by = 'A'))

list放置在list中可以通过mget实现自动化

代码语言:javascript
运行
复制
map(mget(ls(pattern = '^list\\d+$')), ~ reduce(.x, full_join, by = 'A'))

在这里,我们假定lists的名称为list1list2等。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62053485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档