合并R中的文件并保留我匹配的列?
我有两个巨大的数据表:合并R中的文件并保留我匹配的列?,r,R,我有两个巨大的数据表: > head(x) gene_id chr min_POS max_POS rs_id pvalue_G pvalue_E metaP 1 ENSG00000047849 3 47568061 48143776 rs319690 0.7139 0.8613 0.7019270 2 ENSG00000047849 3 47568061 48143776 rs4392441 0.5452 0.7074 0
> head(x)
gene_id chr min_POS max_POS rs_id pvalue_G pvalue_E metaP
1 ENSG00000047849 3 47568061 48143776 rs319690 0.7139 0.8613 0.7019270
2 ENSG00000047849 3 47568061 48143776 rs4392441 0.5452 0.7074 0.4881783
3 ENSG00000047849 3 47568061 48143776 rs4858887 0.5435 0.7074 0.4870446
4 ENSG00000047849 3 47568061 48143776 rs7651237 0.8621 0.6440 0.6529929
5 ENSG00000047849 3 47568061 48143776 rs6803741 0.5436 0.6612 0.4596804
6 ENSG00000047849 3 47568061 48143776 rs4858881 0.6142 0.6833 0.5189457
...
> head(b)
V2 V3 V4 V5 V6
1: 194857581 194857582 rs224 0 -
2: 194857560 194857561 rs225 0 -
3: 7864903 7864904 rs226 0 +
4: 7864919 7864920 rs227 0 +
5: 5558441 5558442 rs228 0 +
6: 137923628 137923629 rs229 0 +
...
我正在尝试使用以下方法合并它们:
x1=merge(b, x, by.x = "V4", by.y="rs_id")
问题是我想保留我合并的所有V4和rs_id。这个合并在x1中给了我89行,我希望有一个额外的列,其中包含所有匹配的V4和rs_id
另外,b文件是巨大的,所以任何更有效的方法都是受欢迎的
基本上,我需要在V4和rs_id上匹配x和b,我需要保留在最终数据帧中的列是:gene_id、chr、rs_id(匹配)、pvalue_G、pvalue_E、V2、V3。为此尝试使用包dplyr。我希望这是真正的代码,但没有运行它,因为我没有数据帧 基本上,我们使用x和b进行内部联接(因此只保留具有匹配的rs_ID和V4的行),然后选择所需的列 图书馆(dplyr)
嗨,我得到:>x%>%+内部连接(b,by=c(“rs\u id”=“V4”)%>%+选择(gene\u id,chr,rs\u id,pvalue,G,pvalue,E,V2,V3)错误:意外输入:“内部连接(b,by=c(“rs\u id”=“V4”)%>%select(gene\u id,chr,rs\u id,pvalue,“哎哟,我想我错过了一个结束语”)。现在编辑它。>x%>+内部连接(b,by=c(“rs\u”)%%>%%+select(gene_-id,chr,rs_-id,pvalue,G,pvalue,E,V2,V3)错误:在“内部连接(b,by=c(“rs_-id”=“V4”))%%>%select(gene_-id,chr,rs_-id,pvalue)”中输入了意外信息:by=c(“rs_-id”=“V4”)哦,再次抱歉…pvalue后面的逗号,加载数据,测试数据,应该可以工作。您的标题集没有重叠的ID,因此我得到0行。建议在代码标记中发布预期的输出。
x %>%
inner_join(b, by = c("rs_id" = "V4")) %>%
select(gene_id, chr, rs_id, pvalue_G, pvalue_E, V2, V3)