数据处理中经常会有这样的情况,需要合并多个数据(按行或者按列合并),常规的merge或者rbind只能两个两个合并,操作繁琐。可以使用自写函数或do.call()函数进行数据库的拼接或合并,具体操作如下:

按列合并

mypath<-"C:/Users/18896/Desktop/example1"multmerge = function(mypath){filenames=list.files(path=mypath, pattern = ".XPT",full.names=TRUE)datalist = lapply(filenames, function(x){read.xport(file=x)})Reduce(function(x,y) {merge(x,y,by="SEQN",all=T)}, datalist)
}mergedata<-multmerge(mypath)

mypath中为需要合并的所有文件夹的本地目录,定义函数multmerge,先列出需要合并的数据库名称,并读取为list,使用merge函数合并list中的数据框。最后生成的mergedata为合并之后的data

文件夹不在本地时

data1 <- data.frame(id = 1:6,                                  # Create first example data framex1 = c(5, 1, 4, 9, 1, 2),x2 = c("A", "Y", "G", "F", "G", "Y"))data2 <- data.frame(id = 4:9,                                  # Create second example data framey1 = c(3, 3, 4, 1, 2, 9),y2 = c("a", "x", "a", "x", "a", "x"))data3 <- data.frame(id = 5:6,                                  # Create third example data framez1 = c(3, 2),z2 = c("K", "b"))data_list <- list(data1, data2, data3)my_merge <- function(df1, df2){                                # Create own merging functionmerge(df1, df2, by = "id")
}Reduce(my_merge, data_list) #id x1 x2 y1 y2 z1 z2
#1  5  1  G  3  x  3  K
#2  6  2  Y  4  a  2  b

或者使用tidyverse包

install.packages("tidyverse")                                  # Install tidyverse package
library("tidyverse")
data_list %>% reduce(inner_join, by = "id")                    # Apply reduce function of tidyverse#id x1 x2 y1 y2 z1 z2
#1  5  1  G  3  x  3  K
#2  6  2  Y  4  a  2  b

按行合并

library(data.table)
DT1 = data.table(A=1:3,B=letters[1:3])
DT2 = data.table(B=letters[4:5],A=4:5)
DT3=data.table(A=6:7,B=letters[6:7])
l = list(DT1,DT2,DT3)
rbindlist(l, use.names=TRUE)
#A B
#1: 1 a
#2: 2 b
#3: 3 c
#4: 4 d
#5: 5 e
#6: 6 f
#7: 7 g

重复合并某个数据框多次

​
do.call("rbind", replicate(4, DT1, simplify = FALSE))​#   A B
# 1: 1 a
# 2: 2 b
# 3: 3 c
# 4: 1 a
# 5: 2 b
# 6: 3 c
# 7: 1 a
# 8: 2 b
# 9: 3 c
#10: 1 a
#11: 2 b
#12: 3 c

Reference:R Merge Multiple Data Frames in List (2 Examples) | Base R vs. tidyverse (statisticsglobe.com)

R实现一次性合并多个数据框相关推荐

  1. 求问R语言 分层抽样 合并两个数据框为什么出现了空集

    求问R语言 分层抽样 合并两个数据框为什么出现了空集 rbind计算不了 #分层抽样 mydata <- read.csv("dat.csv") #simsample 简单随 ...

  2. python合并两个数据框_python-3.x - 如何使用匹配索引合并两个数据框? - SO中文参考 - www.soinside.com...

    因此,我有两个DataFrame:Historic和Applet.历史记录包含我学校过去提供的所有课程的列表,而Applet是我学校目前提供的所有课程的列表 我想合并两个数据框,以便添加我的Apple ...

  3. python合并两个数据框_python 学习的第五天 数据框合并

    1.根据共有的特性进行合并 import pandas; from pandas import read_csv; items = read_csv( "D://PA//4.12//data ...

  4. 【R语言】按照列名筛选数据框

    [R语言]按照列名筛选数据框 先定义一个简单的数据框 a<-c("a","b","c","d") b<-c( ...

  5. r语言用行名称提取数据框信息显示na_学会这些R语言技巧至少可以节省半年时间...

    ubuntu备忘定期清空回收站 扩增子数据牢记 r ubuntu 相关技巧和备忘待解决问题1:phyloseq有一篇文章案例使用输入和输出文件相同的文件名,无法执行 待解决问题2: 待解决问题3:样品 ...

  6. R语言的四种数据结构---数据框

    数据框是最常见的数据结构,一般来讲,从csv或txt文件读入时就会自动存储为数据框对象. 与矩阵不同的是,矩阵只可以存储一种数据类型,而数据框可以存储多种类型,但是每一列必须为相同的数据类型 1.创建 ...

  7. python合并两个数据框_使用python合并两个数据框

    我有两个数据框:dfDepas和df7: dfDepas.info() Int64Index: 7 entries, 0 to 6 Data columns (total 4 columns): da ...

  8. r语言用行名称提取数据框信息显示na_R语言-05数据框创建,以及按条件取数据框数据...

    创建数据框 数据框是R语言的一种基础数据格式,通常excel等表格形式数据读入后都是数据框格式. 下例创建了一个3列5行的数据框,列的名字分别是site.season.pH my.dataset si ...

  9. python两个数据框合并_关于python 2.7:python2 pandas:如何将另一个数据框的一部分合并到一个数据框...

    我有一个dataframe(df1)如下: datetime     m  d    1d    2d   3d 2014-01-01   1  1     2     2   3 2014-01-0 ...

最新文章

  1. JSX设置CSS样式详解
  2. 如何提高企业竞争力,科学的组织架构是第一王牌
  3. BeanShell脚本接口之匿名类
  4. Divide a list of numbers into group of consecutive numbers
  5. 系统架构设计师证书含金量_计算机专科生不能错过的两个证书,含金量比较高,出社会有益...
  6. 数据结构 - 栈(数组模拟栈操作)
  7. 关于IE6下用Jquery attr('onclick')问题
  8. Eclipse快捷键_10个最高效的快捷键
  9. 谷歌浏览器和对应驱动器的安装、配置(附有安装包)
  10. 2022年首次升级:静态代码测试工具Helix QAC 2022.1 新版本功能快讯
  11. Xftp的下载和安装(超详细)
  12. 图像处理之图像去雾中文综述性论文
  13. OpenCV最小二乘法圆拟合
  14. gin-gonic/gin使用详解
  15. 用什么软件测试硬盘使用过多少次,硬盘能查看使用次数吗
  16. twig  之基本语法
  17. 一起来围观软件测试工程师月薪20K的简历
  18. 常见Win7优化误区,教你正确方法!
  19. Mac xmind安装与破解版
  20. NVIDIA,显卡驱动,CUDA版本之间兼容关系及安装

热门文章

  1. Detachment HDU - 5976(数学+费马小定理求逆元+前缀和前缀积)
  2. 专业技术计算机应用能力考试题库,全国专业技术人员计算机应用能力考试题库-Excel,Word,XP...
  3. 电脑剪切,电脑剪切快捷键
  4. databricks使用教程
  5. Android集成QQ登录
  6. 非常适合新手使用的吉他调音软件!
  7. 使用caj文件转换器怎么转换成word文档
  8. 傅里叶变换短时傅里叶变换小波变换
  9. ruoyi是怎么点击菜单跳转页面的_5分钟添加公众号报名功能: 点击公众号菜单报名...
  10. 3、组推荐系统及其应用研究---张玉洁(2016)