【发布时间】:2022-08-02 18:01:18
【问题描述】:
我有一个大文件,我尝试找到一种方法来根据数字范围内的两个数字列对数据进行排序或聚类,但我找不到关于我的问题的正确或合适的函数。你能否请知道如何帮助我的人。
提前致谢。
我的文件类似于此示例文件,但非常大,正如您在此示例中看到的那样,第一行和第二行就像交替数字(我的意思是之间没有任何间隙(序列号)),第三行和第四行也是如此,但是第五行和第六行不同,实际上相距甚远。因此,我想将第一个和第二个视为一个集群,将第三个和第四个视为一个集群,第五个和第六个作为两个不同的集群,最后有 4 行而不是 6 行,因为第 1,2 和 3,4 行都在一个范围内,中间没有任何差距。
示例文件:
df <- setDT(data.frame(name = c(\"chr1\", \"chr1\", \"chr1\", \"chr1\",\"chr1\",\"chr1\"),
start = c(8480001, 8480251, 10006251, 10006501,13910501,14841751),
end = c(8480250, 8480500, 10006500, 10006750,13910750,14842000),
length = c(250, 250, 250, 250,250,250)))
预期输出:
output <- setDT(data.frame(name = c(\"chr1\", \"chr1\", \"chr1\", \"chr1\"),
start = c(8480001, 10006251, 13910501, 14841751),
end = c(8480250, 10006500, 13910750, 14842000),
length = c(250, 250, 250, 250)))
在输出中,我只想拥有一个集群中的第一行,例如第 1 行用于 1 和 2。
再次感谢。
标签: r data.table bioinformatics