当前位置: 首页 > 编程笔记 >

如何在R中执行两个数据帧的内部联接和外部联接?

卫诚
2023-03-14
本文向大家介绍如何在R中执行两个数据帧的内部联接和外部联接?,包括了如何在R中执行两个数据帧的内部联接和外部联接?的使用技巧和注意事项,需要的朋友参考一下

内部联接仅返回左侧表在右表中具有匹配键的行,外部联接返回两个表中的所有行,左侧联接返回在右表中具有匹配键的记录。这可以通过使用合并功能来完成。

示例

内部联接

> df1 = data.frame(CustomerId = c(1:5), Product = c(rep("Biscuit", 3), rep("Cream", 2)))
> df1
  CustomerId Product
1 1 Biscuit
2 2 Biscuit
3 3 Biscuit
4 4 Cream
5 5 Cream
> df2 = data.frame(CustomerId = c(2, 5, 6), City = c(rep("Chicago", 2),
rep("NewYorkCity", 1)))
> df2
CustomerId City
1 2 Chicago
2 5 Chicago
3 6 NewYorkCity

内部联接

> merge(x = df1, y = df2)
  CustomerId Product City
1 2 Biscuit Chicago
2 5 Cream Chicago

外连接

> merge(x = df1, y = df2, by = "CustomerId", all = TRUE)
  CustomerId Product City
1 1 Biscuit <NA>
2 2 Biscuit Chicago
3 3 Biscuit <NA>
4 4 Cream <NA>
5 5 Cream Chicago
6 6 <NA> NewYorkCity
 类似资料:
  • 问题内容: 我需要执行此查询:: 我在python中有这些类: 我如何从下面到达上面? 问题答案: 假设并且来自,并且您定义了一个关系,就应该这样做:

  • 问题内容: 我了解内部和外部联接的工作方式。但是,在此上下文中,“内部/外部”一词的含义是什么?内部联接到底是什么?外部联接的外部是什么? 最好的问候,维沙尔 问题答案: 另一个角度: 最早的简单实现之一是使用嵌套循环的联接。 对于内部联接,只要联接列匹配,外部循环将遍历任何关系,内部循环将遍历其他关系并创建复合行。因此,将在内部循环中创建并填充输出行。因此,这称为INNER JOIN。 当我们希

  • 下面是数据帧列的样子。 df1=‘设备编号’、‘日期’、。。。。 df2=‘设备编号’、‘日期’、。。。。 在每个数据帧中,设备号和日期都不是唯一的。然而,它们的组合对于识别一行是唯一的。 我试图形成一个新的数据帧,它匹配来自df1和df2的行,其中设备号和日期都相等,并且拥有来自这些df1和df2的所有列。我正在尝试的熊猫命令是 然而,df3给了我一个数据帧的形状(14000,21)。列号是有意

  • 问题内容: 希望对两个不同的文本文件执行内部联接。基本上,我正在寻找GNU联接程序的内部联接。这样的事情存在吗?如果没有,则or 解决方案将是最有帮助的,但是我的首选是Linux命令。 这是我要做的事的一个例子 文件1: 文件2: 结果: 问题答案: file2 末尾不应该包含吗? 如果是,您仍然可以使用:

  • 问题内容: 给定两个数据帧,如下所示: 我们想使用非简化的标准来生成两个数据框的SQL风格的联接,比如说“ df_b.c> df_a.a”。据我所知,虽然肯定是解决方案的一部分,但我不能直接使用它,因为它不接受“ ON”条件的任意表达式(除非我遗漏了什么?)。 在SQL中,结果如下所示: 我目前用于内部联接的方法是,通过向两者都添加一列“ 1”,然后在“ 1”列上使用merge(),然后应用“ c

  • 问题内容: 例如,我在表中有此数据, 我或该表本身如何,这样我可以在下面获得此结果? 尽我所能,我只想用关键字“ manage”查询行,但我希望 add 的行中的列数据与结果中的 manage 行中的as相同。 是否有可能? 编辑: 我实际表格的简化版本- , 我的实际查询已经很乱了… 结果我目前得到了 但是我在这之后 问题答案: 您只需要两次引用该表: 如果要在列表中查看根,请用左联接替换inn