我有一个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
感谢您的帮助。