如何用R语言数据合并一行

本篇内容介绍了“如何用R语言数据合并一行”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

数据的合并

需要的函数

如何用R语言数据合并一行

cbind(),rbind(),bind_rows(),merge()

准备数据

我们先构造一组数据,以便下面的演示

>data1<-data.frame(
+namea=c("海波","立波","秀波"),
+value=c("一波","接","一波")
+)
>data1
nameavalue
1海波一波
2立波接
3秀波一波
>data2<-data.frame(
+nameb=c("柯震东","刘强东","何盛东"),
+value=c("东去","又","东来")
+)
>data2
namebvalue
1柯震东东去
2刘强东又
3何盛东东来

按列合并

>cbind(data1,data2)
nameavaluenamebvalue
1海波一波柯震东东去
2立波接刘强东又
3秀波一波何盛东东来

按行合并

按列合并是cbind(),那么按行合并自然是rbind()

>rbind(data1,data2)
Errorinmatch.names(clabs,names(xi)):名字同原来已有的名字不相对

出现了错误,这是因为”namea“ 和”nameb“不同造成的,如果都为"namea" :

>data1<-data.frame(
+namea=c("海波","立波","秀波"),
+value=c("一波","接","一波")
+)
>data1
nameavalue
1海波一波
2立波接
3秀波一波
>data2<-data.frame(
+namea=c("柯震东","刘强东","何盛东"),
+value=c("东去","又","东来")
+)
>data2
nameavalue
1柯震东东去
2刘强东又
3何盛东东来
>#cbind(data1,data2)
>rbind(data1,data2)
nameavalue
1海波一波
2立波接
3秀波一波
4柯震东东去
5刘强东又
6何盛东东来

对数据修改后,没有出现错误。如果 不修改数据该怎么做:

为了解决这个问题,使用dplyr包中的bind_rows()函数,不要求合并字段的名称必须相同,这个函数会自己做判断。

>library(dplyr)
>dplyr::bind_rows(data1,data2)
nameavaluenameb
1海波一波<NA>
2立波接<NA>
3秀波一波<NA>
4<NA>东去柯震东
5<NA>又刘强东
6<NA>东来何盛东

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,...)

merge函数参数的说明:

  • x,y:用于合并的两个数据框

  • by,by.x,by.y:指定依据哪些行合并数据框,默认值为相同列名的列.

  • all,all.x,all.y:指定x和y的行是否应该全在输出文件.

  • sort:by指定的列是否要排序.

  • suffixes:指定除by外相同列名的后缀.

  • incomparables:指定by中哪些单元不进行合并.

演示merge()

data3<-data.frame(
name=c("波","东","波","波"),
type=c("秀","震","秀","秀"),
class=c(10,5,4,11),
num=c(85,50,90,90)
);data3
data4<-data_frame(
name=c("波","东"),
type=c("海","震"),
class=c(5,5),
num=c(88,81)
);data4
#合并data3和data4
>merge(data3,data4,all=T)
nametypeclassnum
1波秀490
2波秀1085
3波秀1190
4波海588
5东震550
6东震581
#按照name,type,class合并data3.data4
>merge(data3,data4,by=c("name","type","class"),all=T)
nametypeclassnum.xnum.y
1波秀490NA
2波秀1085NA
3波秀1190NA
4波海5NA88
5东震55081

“如何用R语言数据合并一行”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注恰卡编程网网站,小编将为大家输出更多高质量的实用文章!

发布于 2021-03-13 15:41:35
收藏
分享
海报
0 条评论
168
上一篇:python-docx文件路径问题的如何解决 下一篇:怎么利用Python实现QQ实时到账免签支付功能
目录

    0 条评论

    本站已关闭游客评论,请登录或者注册后再评论吧~

    忘记密码?

    图形验证码