R语言必会数据框操作dplyr

文摘   2024-10-26 12:15   江苏  

所涉及的函数

  • Mutating Joins: inner_join(), left_join(), right_join(), full_join()

  • Filtering Joins: semi_join(), anti_join()




内连接

x %>%  inner_join(y, by = "key")



外连接(Outer Joins)是数据库和数据操作中常用的概念,用于合并两个数据表(或数据框)时,保留至少在一个表中存在的所有观测。与内连接(Inner Joins)不同,内连接只保留两个表中都有匹配键的观测,而外连接则包括至少在一个表中存在的所有观测。外连接有三种类型:


  1. 左连接(Left Join)保留左侧表(通常称为 x)中的所有观测,即使在右侧表(通常称为 y)中没有匹配的键。在结果中,右侧表中没有匹配的键将用 NA(表示缺失值)填充。

  2. 右连接(Right Join)保留右侧表中的所有观测,即使在左侧表中没有匹配的键。在结果中,左侧表中没有匹配的键将用 NA 填充。

  3. 全连接(Full Join)保留两个表中的所有观测,无论它们是否在另一个表中有匹配的键。没有匹配的键将用 NA 填充。

在R语言的dplyr包中,可以使用以下函数来执行这些外连接操作:

  • left_join(x, y, by = "key"):执行左连接。

  • right_join(x, y, by = "key"):执行右连接。

  • full_join(x, y, by = "key"):执行全连接。

这些函数的参数 by = "key" 指定了用于连接两个表的键。在实际应用中,你可以根据需要选择合适的外连接类型来合并数据,同时保留所有需要的观测。



右连接

 right_join(x, y, by = "key")


全连接

full_join函数

  • 全连接:保留 x 和 y 中的所有观测。

筛选连接

筛选连接匹配观测的方式与合并连接相同,但前者影响的是观测,而不是变量。筛选连接
有两种类型。
• semi_join(x, y):保留 x 表中与 y 表中的观测相匹配的所有观测。
• anti_join(x, y):丢弃 x 表中与 y 表中的观测相匹配的所有观测。

筛选连接(Filtering Joins)是另一种类型的数据合并操作,它不像合并连接(如内连接、外连接)那样将两个表的列合并在一起,而是根据两个表的匹配情况来筛选出一个表中的行。筛选连接通常用于数据清洗或子集选择。在R语言的dplyr包中,筛选连接有两种类型:

  1. semi_join(x, y):这个函数保留左侧表(x)中与右侧表(y)有匹配的观测。它只返回左侧表中与右侧表至少有一个匹配的行,但不包括右侧表的任何列。这相当于SQL中的INNER JOIN,但只返回左侧表的列。

  2. anti_join(x, y):这个函数丢弃左侧表(x)中与右侧表(y)有匹配的观测,只保留那些在右侧表中没有匹配的观测。这相当于SQL中的LEFT ANTI JOIN

anti_join函数
  • 丢弃 x 表中与 y 表中的观测相匹配的所有观测。

参考:https://www.jianshu.com/p/1f4c7bfed3d4

生信小博士
【生物信息学】R语言开始,学习生信。Seurat,单细胞测序,空间转录组。 Python,scanpy,cell2location。资料分享
 最新文章