博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
R语言-merge和rbind
阅读量:5156 次
发布时间:2019-06-13

本文共 2555 字,大约阅读时间需要 8 分钟。

rbind

使用方式 

合并两个数据集,要求两个数据集的列数相等:

rbind(parameter1,parameter2)
  • 1
  • 1

合并多个数据集,各个数据集的列数相等:

rbind(parameter1,parameter2,...,parametern)
  • 1
  • 1

从数据集中提取数据

test <- rbind()for (i in 1:length(s_5)){     test <- rbind(test,data[s_5[i],]) }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 1
  • 2
  • 3
  • 4
  • 5

merge

merge函数的声明:

merge(x, y, by = intersect(names(x), names(y)), by.x = by, by.y = by, all = FALSE, all.x = all, all.y = all, sort = TRUE, suffixes = c(".x",".y"), incomparables = NULL, ...)
  • 1
  • 2
  • 3
  • 4
  • 1
  • 2
  • 3
  • 4

merge函数参数的说明:

参数 说明
x,y 用于合并的两个数据框
by,by.x,by.y 指定依据哪些行合并数据框,默认值为相同列名的列.
all,all.x,all.y 指定x和y的行是否应该全在输出文件.
sort by指定的列是否要排序.
suffixes 指定除by外相同列名的后缀.
incomparables 指定by中哪些单元不进行合并.

例子:

w1:NAME    SCHOOL    CLASS    ENGLISHA    S1    10    85B    S2    5 50 A S1 4 90 A S1 11 90 C S1 1 12 w2: NAME SCHOOL CLASS MATHS ENGLISH A S3 5 80 88 B S2 5 89 81 C S1 1 55 32
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

按照NAME, SCHOOL, CLASS合并w1和w2:

merge(w1, w2, all = T)  NAME SCHOOL CLASS ENGLISH MATHS1    A     S1     4      90    NA 2 A S1 10 85 NA 3 A S1 11 90 NA 4 A S3 5 88 80 5 B S2 5 50 NA 6 B S2 5 81 89 7 C S1 1 12 NA 8 C S1 1 32 55 merge(w1, w2, by = c("NAME", "SCHOOL", "CLASS"), all = T) NAME SCHOOL CLASS ENGLISH.x MATHS ENGLISH.y A S1 4 90 NA NA A S1 10 85 NA NA A S1 11 90 NA NA A S3 5 NA 80 88 B S2 5 50 89 81 C S1 1 12 55 32 merge(w1, w2, all = T, incomparables = "A") Error in merge.data.frame(w1, w2, all = T, incomparables = "A") : 'incomparables' is supported only for merging on a single column merge(w1, w2, all = T, by = "NAME", incomparables = "A") NAME SCHOOL.x CLASS.x ENGLISH.x SCHOOL.y CLASS.y MATHS ENGLISH.y A S1 10 85 
NA NA NA A S1 4 90
NA NA NA A S1 11 90
NA NA NA A
NA NA S3 5 80 88 B S2 5 50 S2 5 89 81 C S1 1 12 S1 1 55 32
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34

横向合并

ID<-c(1,2,3,4) name<-c("Jim","Tony","Lisa","Tom") score<-c(89,22,78,78) student1<-data.frame(ID,name) student2<-data.frame(ID,score) total_student<-merge(student1,student2,by="ID") total_student
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

当然merge也可以使用纵向合并

merge(data1,dadta2,all=T)
  • 1
  • 1

纵向合并

ID<-c(1,2,3)name<-c("Jame","Kevin","Sunny") student1<-data.frame(ID,name) ID<-c(4,5,6) name<-c("Sun","Frame","Eric") student2<-data.frame(ID,name) total<-rbind(student1,student2) total
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
 
 

转载于:https://www.cnblogs.com/awishfullyway/p/6677016.html

你可能感兴趣的文章
Spring mvc4 + ActiveMQ 整合
查看>>
Python基础(8)素数输出
查看>>
VS.左侧_蓝黄绿_竖线
查看>>
19.网络编程
查看>>
JavaScript——创建运动框架
查看>>
TechDay实录|摘取皇冠上的明珠,中文NLP的不二选择——PaddlePaddle
查看>>
2015某大型电商集团的前端实习生在线笔试题(无耻的拿来偷看了)
查看>>
读书:刘润商学院学习笔记1
查看>>
max os取消开机启动
查看>>
[LeetCode]Spiral Matrix
查看>>
结构型模式-装饰模式(扩展系统功能)
查看>>
IE6不支持hover赋予css样式的解决方法 如div:hover li:hover支持
查看>>
Linux Hugetlbfs内核源码简析-----(二)Hugetlbfs挂载
查看>>
Linux常用命令大全(新手入门)
查看>>
面试题(三)
查看>>
this
查看>>
NEUACM 2015年一月月赛
查看>>
virtualenv
查看>>
代码动态改变 NGUI UILabel 的字体
查看>>
CentOS 7.6 RPM方式安装Oracle19c的过程
查看>>