如何根据linux或R中2个不同列中的值合并行

时间:2015-11-05 15:19:15

标签: r linux dataframe

我有一个data.frame:

  Gene.ID Chr Strand Start End Gene.Name Transcript.ID
1 ENSMUSG00000025917               1     -1      10024601    10024978                Cops5                    ENSMUST00000027050
2 ENSMUSG00000025917               1     -1      10024843    10025063                Cops5                    ENSMUST00000190155
3 ENSMUSG00000025917               1     -1      10027103    10027251                Cops5 ENSMUST00000190155 ENSMUST00000186528
4 ENSMUSG00000025917               1     -1      10030599    10030710                Cops5 ENSMUST00000190155 ENSMUST00000186528
5 ENSMUSG00000025917               1     -1      10032339    10032424                Cops5                    ENSMUST00000186528
6 ENSMUSG00000025917               1     -1      10033258    10033323                Cops5                    ENSMUST00000186528

我想以这种方式合并它: 如果Gene.ID,chr,strand和Gene.name相同,并且第一行的停止比下一行的开始大,则合并这两行并保持从第一行开始作为开始并且停止保持最大值停止第一行和下一行。并且还保留两行中的Transcript.ID。

预期结果是:

Gene.ID                          Chr Strand         Start         End            Gene.Name                         Transcript.ID
1 ENSMUSG00000025917               1     -1      10024601    10025063                Cops5 ENSMUST00000190155 ENSMUST00000027050
3 ENSMUSG00000025917               1     -1      10027103    10027251                Cops5 ENSMUST00000190155 ENSMUST00000186528
4 ENSMUSG00000025917               1     -1      10030599    10030710                Cops5 ENSMUST00000190155 ENSMUST00000186528
5 ENSMUSG00000025917               1     -1      10032339    10032424                Cops5                    ENSMUST00000186528
6 ENSMUSG00000025917               1     -1      10033258    10033323                Cops5                    ENSMUST00000186528

感谢您的帮助。

0 个答案:

没有答案