r - 在 R 中连接两个数据框
问题描述
抱歉,如果这是一个超级基本的问题,但我在处理我的 R 项目时遇到了问题。基本上我有两个数据框对象,一个是基因及其在各种患者中的表达水平的主列表,另一个是大小仅为一列的对象。然后,只有一列是属于特定基因子类别的基因列表,所有这些基因都在主列表中。我正在尝试创建一个数据框,其中包含我的特定基因子集及其在主列表中包含的不同患者中的表达。我尝试使用 merge() 函数,但只创建了一个空数据框。
基本上代码类似于:new_dataframe <- merge(master_list, specific_gene_list, by = "gene")。我认为这段代码应该查看我的主列表,找到特定列表中的所有基因,然后只获取这些基因并添加患者表达的列,但是我的数据框是空的,它创建了一个包含所有主列的数据框列表但没有填写任何值。非常感谢任何帮助。
一个视觉示例:
主数据框
x: 1
是:3
z : 4
w: 6
具体数据框:
X
是的
所需的数据框:
x: 1
是:3
解决方案
我们可以regex_inner_join
使用fuzzyjoin
library(fuzzyjoin)
df3 <- regex_inner_join(df1, df2, by = 'gene') %>%
transmute(gene = gene.x)
df3
# gene
#1 x: 1
#2 y: 3
数据
df1 <- structure(list(gene = c("x: 1", "y: 3", "z: 4", "w: 6")),
class = "data.frame", row.names = c(NA,
-4L))
df2 <- structure(list(gene = c("x", "y")), class = "data.frame", row.names = c(NA,
-2L))
推荐阅读
- regex - 带有正则表达式的解析器用于查找单词、过滤问题
- python - matplotlib 两种颜色之间的颜色渐变
- python - 如何格式化谷歌分析日期的结果。ga:日期
- amcharts - Amchart:仅显示特定系列的图例
- mysql - 如何在一个 sql 中更新唯一的默认选项
- google-apps-script - 如何根据单元格的值继续删除单元格
- javascript - 向递归函数添加类型
- authentication - 如何在 KONG 中实现外部身份验证?
- android - 具有时间间隔的请求位置更新未在前台服务中获取位置更新?
- python - 如何在 for 循环中创建多索引 pandas 数据框?