【发布时间】:2021-10-20 09:09:09
【问题描述】:
我有大量具有多个相同行名的数据框,但每个数据框的特定列 ID 的值不同。我想提取两列 ID 差异最大的唯一行。
例如,这里是一个示例数据
seqname source start end Name score
chr08:37848-37905 PRINTS 24 37 AAA 1.40E-05
chr08:37848-37905 PANTHER 1 57 AAA 1.10E-15
chr08:37848-37905 SUPERFAMILY 3 57 AAA 6.80E-13
chr08:37848-37905 Gene3D 1 57 AAA 6.40E-17
chr05:55489-55514 Pfam 2 23 BBB 7.30E-07
chr05:55489-55514 Gene3D 1 25 BBB 7.10E-07
chr05:55489-55514 ProSiteProfiles 1 25 BBB 9.683545
chr05:55489-55514 SUPERFAMILY 2 24 BBB 1.23E-06
我想获取具有最小 start 和最大 end 值的唯一行的所有列。输出看起来像
seqname source start end Name score
chr08:37848-37905 Gene3D 1 57 AAA 6.40E-17
chr05:55489-55514 Gene3D 1 25 BBB 7.10E-07
group_by 结果仅适用于选定的汇总 ID,但我无法确定保留具有这些选定值的行
data %>% dplyr::group_by(seqname) %>%
summarize(start=min(start), end=max(end))
感谢您的帮助。
【问题讨论】:
-
在您的示例中 - 为什么第一组选择 Gene3D 而不是 PANTHER?它们的开始值和结束值是否相同?
-
在第一组中,Gene3D 显示的得分最低,这是它出现的 p 值,是我感兴趣的。
标签: r dataframe matrix tidyverse