R 多个data.frame合并

本文介绍了如何使用dplyr和purrr库在R语言中进行数据框的合并操作,包括left_join、full_join和inner_join。通过示例展示了如何获取三个数据框的交集、并集和向左连接结果,适用于数据清洗和分析场景。
摘要由CSDN通过智能技术生成
library(dplyr);library(purrr)
x <- data_frame(i = c("a","b","c"), j = 1:3)
y <- data_frame(i = c("b","c","d"), k = 4:6)
z <- data_frame(i = c("c","d","a"), l = 7:9)
// 创建x,y,z结果
> x
# A tibble: 3 x 2
  i         j
  <chr> <int>
1 a         1
2 b         2
3 c         3

> y
# A tibble: 3 x 2
  i         k
  <chr> <int>
1 b         4
2 c         5
3 d         6

> z
# A tibble: 3 x 2
  i         l
  <chr> <int>
1 c         7
2 d         8
3 a         9
// 向左取
> list(x, y, z) %>% reduce(left_join, by = "i")
# A tibble: 3 x 4
  i         j     k     l
  <chr> <int> <int> <int>
1 a         1    NA     9
2 b         2     4    NA
3 c         3     5     7
// 取union
> list(x, y, z) %>% reduce(full_join, by = "i")
# A tibble: 4 x 4
  i         j     k     l
  <chr> <int> <int> <int>
1 a         1    NA     9
2 b         2     4    NA
3 c         3     5     7
4 d        NA     6     8
// 取交集
> list(x, y, z) %>% reduce(inner_join, by = "i")
# A tibble: 1 x 4
  i         j     k     l
  <chr> <int> <int> <int>
1 c         3     5     7
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值