R语言专题5-两个数据框连接

2023-09-17 19:35:40 浏览数 (1)

代码语言:text复制
# 生成两个数据框做演示
test1 <- data.frame(name = c('jimmy','nicker','Damon','Sophie'), 
                    blood_type = c("A","B","O","AB"))
test1
代码语言:txt复制
##     name blood_type
## 1  jimmy          A
## 2 nicker          B
## 3  Damon          O
## 4 Sophie         AB
代码语言:text复制
test2 <- data.frame(name = c('Damon','jimmy','nicker','tony'),
                    group = c("group1","group1","group2","group2"),
                    vision = c(4.2,4.3,4.9,4.5))
test2
代码语言:txt复制
##     name  group vision
## 1  Damon group1    4.2
## 2  jimmy group1    4.3
## 3 nicker group2    4.9
## 4   tony group2    4.5
代码语言:text复制
# 操作之前记得先加载这个包哦
library(dplyr)

1.inner_join:取交集

代码语言:text复制
# 通过名字取两个表格的交集
inner_join(test1,test2,by = 'name')
代码语言:txt复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2

2.full_join:取全集

代码语言:text复制
# 都并在一块还设啥参数,取不到就会返回NA
full_join(test1,test2)
代码语言:txt复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
## 4 Sophie         AB   <NA>     NA
## 5   tony       <NA> group2    4.5

3.left_join:左连接

代码语言:text复制
left_join(test1,test2,by="name") # 保留左边表格里的那四个人,取不到就返回NA
代码语言:txt复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
## 4 Sophie         AB   <NA>     NA

4.right_join:右连接

就是左连接换个位置,不学都行

代码语言:text复制
right_join(test1,test2,by="name") # 大家看下区别吧,就是换下位置
代码语言:txt复制
##     name blood_type  group vision
## 1  jimmy          A group1    4.3
## 2 nicker          B group2    4.9
## 3  Damon          O group1    4.2
## 4   tony       <NA> group2    4.5

引用自生信技能树

0 人点赞