我有一个如下所示的df:
gene ID Probe ID Chromosome Start Stop
1: H3F3A 539154271 1 226259488 226259567
2: H3F3A 539154249 1 226259368 226259447
3: H3F3A 539154244 1 226259238 226259317
4: H3F3A 539154241 1 226259118 226259197
5: H3F3A 539154231 1 226258998 226259077
6: H3F3A 539154255 1 226258868 226258947
df包含7830行,分别对应40个不同的基因ID。
从这个df中,我想获得一个具有40行的df,每行分别对应40个基因,其中“开始”是第一个起始值,“停止”是最后一个终止值每个基因(例如,第一个基因的起始值为226259488,终止值为226258947。 新的df看起来像(例如第一个基因ID):
gene ID Probe ID Chromosome Start Stop
1: H3F3A 539154271 1 226259488 226258947
任何帮助都会很棒。 谢谢
答案 0 :(得分:1)
基于格式,它看起来像data.table
,因此使用data.table
方法(按“基因ID”,“染色体”分组)可获得“开始”的first
,“停止”和其他列中的last
,汇总数据
library(data.table)
df[, .(`Probe ID` = first(`Probe ID`), Start = first(Start),
Stop = last(Stop)), by = .(`gene ID`, Chromosome)]