提取匹配内容并将其合并

时间:2019-04-23 18:14:33

标签: r excel file command-line

我有2个文件-

文件1-

MU_Id
    MU1045462
    MU104752
    MU10563
    MU105995
    MU106482
    MU11094
    MU111277
    MU1120685
    MU1120685
    MU1120685
    MU1120685
    MU1120685
    MU1120685
    MU1120685
    MU1120685
    MU11229
    MU11245484
    MU11246134
    MU112589917

文件2-

Ens_Id    Symbol     MU_Id
ENSG00000151779 NBAS    MU101188
ENSG00000007174 DNAH9   MU101310
ENSG00000213281 NRAS    MU101326
ENSG00000221866 PLXNA4  MU10251
ENSG00000141510 TP53    MU1045462
ENSG00000158477 CD1A    MU104752
ENSG00000141510 TP53    MU10563
ENSG00000136021 SCYL2   MU105995
ENSG00000034677 RNF19A  MU106482
ENSG00000141510 TP53    MU11094
ENSG00000152592 DMP1    MU111277
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000141510 TP53    MU11229
ENSG00000086717 PPEF1   MU11245484
ENSG00000165168 CYBB    MU11246134
ENSG00000182752 PAPPA   MU112589917
ENSG00000155761 SPAG17  MU112692097
ENSG00000171307 ZDHHC16 MU112734
ENSG00000106665 CLIP2   MU112756738

我想在文件2中搜索文件1的MU ID,然后添加相应的1stcolumn和2nd列。

预期输出-

 MU_Id      Ens_ID          Symbol
    MU1045462   ENSG00000141510 TP53
    MU104752    ENSG00000158477 CD1A
    MU10563 ENSG00000141510 TP53
    MU105995    ENSG00000136021 SCYL2
    MU106482    ENSG00000034677 RNF19A
    MU11094 ENSG00000141510 TP53
    MU111277    ENSG00000152592 DMP1
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU1120685   ENSG00000147889 CDKN2A
    MU11229 ENSG00000141510 TP53
    MU11245484  ENSG00000086717 PPEF1
    MU11246134  ENSG00000165168 CYBB
    MU112589917 ENSG00000182752 PAPPA

这是一个示例文件,原始文件非常大,所以我无法手动完成。

这是一个示例文件,原始文件非常大,因此我无法手动执行。我已经尝试过Rscript-

df <- merge(df1, df2, by.x = "MU_Id", by.y = "MU_Id")

但是我得到了这样的输出-

MU_Id   Ens_Id  Symbol
1   MU1045462   ENSG00000141510 TP53
2   MU104752    ENSG00000158477 CD1A
3   MU10563 ENSG00000141510 TP53
4   MU105995    ENSG00000136021 SCYL2
5   MU106482    ENSG00000034677 RNF19A
6   MU11094 ENSG00000141510 TP53
7   MU111277    ENSG00000152592 DMP1
8   MU1120685   ENSG00000147889 CDKN2A
9   MU1120685   ENSG00000147889 CDKN2A
10  MU1120685   ENSG00000147889 CDKN2A
11  MU1120685   ENSG00000147889 CDKN2A
12  MU1120685   ENSG00000147889 CDKN2A
13  MU1120685   ENSG00000147889 CDKN2A
14  MU1120685   ENSG00000147889 CDKN2A
15  MU1120685   ENSG00000147889 CDKN2A
16  MU1120685   ENSG00000147889 CDKN2A
17  MU1120685   ENSG00000147889 CDKN2A
18  MU1120685   ENSG00000147889 CDKN2A
19  MU1120685   ENSG00000147889 CDKN2A
20  MU1120685   ENSG00000147889 CDKN2A
21  MU1120685   ENSG00000147889 CDKN2A
22  MU1120685   ENSG00000147889 CDKN2A
23  MU1120685   ENSG00000147889 CDKN2A
24  MU1120685   ENSG00000147889 CDKN2A
25  MU1120685   ENSG00000147889 CDKN2A
26  MU1120685   ENSG00000147889 CDKN2A
27  MU1120685   ENSG00000147889 CDKN2A
28  MU1120685   ENSG00000147889 CDKN2A
29  MU1120685   ENSG00000147889 CDKN2A
30  MU1120685   ENSG00000147889 CDKN2A
31  MU1120685   ENSG00000147889 CDKN2A
32  MU1120685   ENSG00000147889 CDKN2A
33  MU1120685   ENSG00000147889 CDKN2A
34  MU1120685   ENSG00000147889 CDKN2A
35  MU1120685   ENSG00000147889 CDKN2A
36  MU1120685   ENSG00000147889 CDKN2A
37  MU1120685   ENSG00000147889 CDKN2A
38  MU1120685   ENSG00000147889 CDKN2A
39  MU1120685   ENSG00000147889 CDKN2A
40  MU1120685   ENSG00000147889 CDKN2A
41  MU1120685   ENSG00000147889 CDKN2A
42  MU1120685   ENSG00000147889 CDKN2A
43  MU1120685   ENSG00000147889 CDKN2A
44  MU1120685   ENSG00000147889 CDKN2A
45  MU1120685   ENSG00000147889 CDKN2A
46  MU1120685   ENSG00000147889 CDKN2A
47  MU1120685   ENSG00000147889 CDKN2A
48  MU1120685   ENSG00000147889 CDKN2A
49  MU1120685   ENSG00000147889 CDKN2A
50  MU1120685   ENSG00000147889 CDKN2A
51  MU1120685   ENSG00000147889 CDKN2A
52  MU1120685   ENSG00000147889 CDKN2A
53  MU1120685   ENSG00000147889 CDKN2A
54  MU1120685   ENSG00000147889 CDKN2A
55  MU1120685   ENSG00000147889 CDKN2A
56  MU1120685   ENSG00000147889 CDKN2A
57  MU1120685   ENSG00000147889 CDKN2A
58  MU1120685   ENSG00000147889 CDKN2A
59  MU1120685   ENSG00000147889 CDKN2A
60  MU1120685   ENSG00000147889 CDKN2A
61  MU1120685   ENSG00000147889 CDKN2A
62  MU1120685   ENSG00000147889 CDKN2A
63  MU1120685   ENSG00000147889 CDKN2A
64  MU1120685   ENSG00000147889 CDKN2A
65  MU1120685   ENSG00000147889 CDKN2A
66  MU1120685   ENSG00000147889 CDKN2A
67  MU1120685   ENSG00000147889 CDKN2A
68  MU1120685   ENSG00000147889 CDKN2A
69  MU1120685   ENSG00000147889 CDKN2A
70  MU1120685   ENSG00000147889 CDKN2A
71  MU1120685   ENSG00000147889 CDKN2A
72  MU11229 ENSG00000141510 TP53
73  MU11245484  ENSG00000086717 PPEF1
74  MU11246134  ENSG00000165168 CYBB
75  MU112589917 ENSG00000182752 PAPPA

或者在终端机中向我推荐一些command-line

2 个答案:

答案 0 :(得分:0)

您可以通过将merge定向到不同的by来实现:

df <- merge(df1, df2, by.x = "V1", by.y = "V3")

数据:

df1 <- read.table(text = "MU1045462
MU104752
MU10563
MU105995
MU106482
MU11094
MU111277
MU1120685
MU1120685
MU1120685
MU1120685
MU1120685
MU1120685
MU1120685
MU1120685
MU11229
MU11245484
MU11246134
MU112589917")

df2 <- read.table(text = "ENSG00000151779 NBAS    MU101188
ENSG00000007174 DNAH9   MU101310
ENSG00000213281 NRAS    MU101326
ENSG00000221866 PLXNA4  MU10251
ENSG00000141510 TP53    MU1045462
ENSG00000158477 CD1A    MU104752
ENSG00000141510 TP53    MU10563
ENSG00000136021 SCYL2   MU105995
ENSG00000034677 RNF19A  MU106482
ENSG00000141510 TP53    MU11094
ENSG00000152592 DMP1    MU111277
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000147889 CDKN2A  MU1120685
ENSG00000141510 TP53    MU11229
ENSG00000086717 PPEF1   MU11245484
ENSG00000165168 CYBB    MU11246134
ENSG00000182752 PAPPA   MU112589917
ENSG00000155761 SPAG17  MU112692097
ENSG00000171307 ZDHHC16 MU112734
ENSG00000106665 CLIP2   MU112756738")

答案 1 :(得分:0)

dplyr中,您可以使用left_join

library(dplyr)
df <- left_join(df1, df2, by = c("V1" = "V3"))

注意:您的数据重复了