根据具有重复名称的一列匹配两个文件

时间:2019-01-11 21:22:50

标签: r

我在R中指定了两个向量:dif和df2

dif

            TX_NAME   baseMean log2FoldChange    lfcSE      stat       pvalue
1  ENSMUST00000189941.1 2924.12770      -11.52662 1.225415 -9.406295 5.139318e-21
2  ENSMUST00000174759.7   87.20515      -22.23962 2.848984 -7.806160 5.895654e-15
3  ENSMUST00000202220.3 1858.64629      -13.83620 1.769124 -7.820928 5.243522e-15
4 ENSMUST00000064151.12   81.87098      -22.15462 2.849401 -7.775185 7.533750e-15
5  ENSMUST00000139264.1  100.04720      -22.42838 2.851911 -7.864335 3.710619e-15
6  ENSMUST00000080115.9   84.68359      -22.20991 2.848771 -7.796313 6.374197e-15
          padj
1 6.380052e-16
2 8.319140e-11
3 8.319140e-11
4 8.319140e-11
5 8.319140e-11
6 8.319140e-11

df2

TX_NAME          NAME                    
1: ENSMUST00000193812.1 RP23-271O17.1                  
2: ENSMUST00000082908.1       Gm26206                
3: ENSMUST00000162897.1          Xkr4 
4: ENSMUST00000159265.1          Xkr4 
5: ENSMUST00000070533.4          Xkr4       
6: ENSMUST00000192857.1 RP23-317L18.1 

我不知道如何根据TX_NAME和NAME来匹配它们,并且与TX_NAME和df2中的NAME相关联,因为df2中的NAME重复,所以我无法合并它们

1 个答案:

答案 0 :(得分:0)

here对数据帧合并进行了更详细的讨论。如果要查看文档,请访问Merging DataMerge Two Data Frames

因此,您可以按以下方式进行合并:

merge(dif, df2, by="TX_NAME")

但是,您将丢失两个数据框中未显示的行。因此,如果要用NA填充空白单元格,则可以使用它:

merge(dif, df2, by="TX_NAME", all=TRUE)

辛苦了!