R语言 数据框连接
在R语言中,数据框是通用的数据对象,用于存储表格数据。数据框被认为是R编程中最流行的数据对象,因为以表格的形式分析数据会更舒服。数据框架也可以被教导为床垫,矩阵的每一列都可以是不同的数据类型。数据框架是由三个主要部分组成的,即数据、行和列。在R语言中,我们使用 merge() 函数来合并两个数据框架。这个函数存在于 dplyr 包的 join() 函数中。合并两个数据框架最重要的条件是列的类型应该是相同的,在此基础上进行合并。 merge() 函数的工作原理类似于DBMS中的join。R中可用的合并类型有。
- 自然连接或内部连接
- 左外联接
- 右外联接
- 全外联接
- 交叉连接
- 半联接
- 反联接
R中 merge() 函数的基本语法。
语法: merge(df1, df2, by.df1, by.df2, all.df1, all . df2, sort = TRUE)
参数:
df1: 一个数据框架
df2: 另一个数据框架
by.df1, by.df2: df1和df2共有的列的名称。
现在让我们试着逐一了解所有的合并类型。首先,我们将创建两个数据框,这将有助于我们轻松地理解每个连接。
# 数据框1
输出
# 数据框2
输出
自然连接或内部连接
内联接是用来只保留那些从数据框架中匹配的行,在这里,我们实际上指定了参数 all = FALSE。 如果我们尝试用集合理论来理解这一点,那么我们可以说这里我们实际上是在进行交集操作。比如说。
这是R语言中最简单和最常见的连接类型。现在让我们试着用R语言程序来理解它。
例子
输出
左外联接
左外联接基本上是包括你的数据框架x中的所有行和y中的那些匹配的行,在这里,我们实际上指定参数 x = TRUE。 如果我们尝试用基本的集合理论来理解这一点,那么我们可以说在这里我们实际上是在显示完整的集合x。现在让我们尝试用R程序来理解这个。
例子
输出
右外联接
右外联接基本上是包括你的数据框架y中的所有行,并且只包括x中那些匹配的行,在这里,我们实际上指定了参数 y = TRUE。 如果我们尝试用基本的集合理论来理解这一点,那么我们可以说在这里我们实际上是在显示一个完整的集合y。现在让我们尝试用R程序来理解这一点:
例子
输出
完全外联
外联基本上是用来保留两个数据框架的所有记录,在这里,我们实际上指定了参数 all = TRUE。 如果我们尝试用基本的集合理论来理解这一点,那么我们可以说这里我们实际上是在执行联合选项。现在让我们试着用R程序来理解这个问题。
例子
输出
交叉连接
交叉连接也被称为笛卡尔连接,其结果是一个数据框架的每一行都被连接到另一个数据框架的每一行。在集合理论中,这种类型的连接被称为两个集合之间的笛卡尔积。现在让我们试着用R程序来理解这一点。
例子
输出
半连接
这种连接有点像内部连接,只有左边的数据框架列和值被选中。现在让我们试着用R程序来理解这个。
例子
输出
反联接
在集合理论方面,我们可以把反连接说成是集合的差异操作,例如,A = (1, 2, 3, 4) B = (2, 3, 5) 那么A-B的输出将是集合(1, 4)。这个连接有点像df1-df2,因为它基本上是从df1中选择所有实际上不存在于df2中的行。现在让我们试着用R程序来理解这个问题。
例子
输出