R语言合并数据框的行与列

大家好,这里是想做生信大恐龙🦖的生信小白。先赞后看养成习惯,还没关注的小伙伴点点关注不迷路。今天熟悉数据操作中的数据合并。

rbind()(按列合并应该有相同的行数)和cbind()函数分别用于按行或按列合并给定向量、矩阵、数据框,并创建新矩阵或数据框(不了解的小伙伴可以看我之前写的R语言的数据结构 https://blog.csdn.net/ouyangk1026/article/details/121582431)。

rbind()
cbind()

举个列子😶‍🌫️:

rbind(c(1,2,3),c(4,5,6))
     [,1] [,2] [,3]
[1,]    1    2    3
[2,]    4    5    6
cbind(c(1,2,3),c(4,5,6))
     [,1] [,2]
[1,]    1    4
[2,]    2    5
[3,]    3    6

也可以用来向已存在的数据中添加数据,举个列子😶‍🌫️:

a  matrix(c(1,2,3,4,5,6),2,3)
a
     [,1] [,2] [,3]
[1,]    1    3    5
[2,]    2    4    6
cbind(a,c(5,7))

得到的结果如下:

cbind(a,c(5,7))
     [,1] [,2] [,3] [,4]
[1,]    1    3    5    5
[2,]    2    4    6    7

使用rbind()和cbind()函数要求等长,意思就是如果按列合并,数据的长度是列数的正整数倍数。

merge()函数具有cbind()函数与rbind()函数的功能,而且可以根据相同的行名和列名合并数据。

merge(
  x
  y
  by
  all = FALSE
)

举个列子😶‍🌫️:


math  data.frame(name=c("迪迦","泰罗","赛文"),math=c(76,84,64))

english  data.frame(name=c("泰罗","赛文","迪迦"),english=c(95,59,42))

可以看到我故意将姓名一行顺序改变了,然后我们用merge()函数将两个数据框合并。

(c  merge(math,english))
  name math english
1 迪迦   76      42
2 赛文   64      59
3 泰罗   84      95

可以看到merge()函数将题目按想同列名进行了合并。如果我们使用cbind()函数,看看是什么效果?

(d  cbind(math,english))
  name math name english
1 迪迦   76 泰罗      95
2 泰罗   84 赛文      59
3 赛文   64 迪迦      42

cbind()函数直接将他们合并,即没排序也没消除相同列。
接下来讲一下all的使用,举个列子😶‍🌫️:


math  data.frame(name=c("迪迦","泰罗","赛文"),math=c(76,84,64))
english  data.frame(name=c("艾斯","赛文","迪迦"),english=c(95,59,42))

如果我们按照之前的使用方法,将会得到下面的结果:


(c  merge(math,english))
  name math english
1 迪迦   76      42
2 赛文   64      59

接下来我们使用all:


(c  merge(math,english,all = TRUE))
  name math english
1 艾斯   NA      95
2 迪迦   76      42
3 赛文   64      59
4 泰罗   84      NA

好啦!今天我们讲了数据的合并,讲了三个函数,分别时:cbind(),rbind(),merge()。希望小伙伴们可以多多练习。都看到这里了,请给大恐龙🦖点点赞点点关注!下次再见啦!

Original: https://blog.csdn.net/ouyangk1026/article/details/122363301
Author: Bio大恐龙
Title: R语言合并数据框的行与列

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/638494/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球