如何在r中选择col的最大值

时间:2018-10-30 00:28:59

标签: r

我有一个包含重复行的数据框。我想删除重复的行,并为每个与最高的计数值col的sample_id选择行。我该怎么办?

样本数据(来自注释):

structure(list(gene_id = c("ENSG00000000003", "ENSG00000000003", 
"ENSG00000000003", "ENSG00000000003", "G00000000003", "G00000000003", 
"G00000000003", "G00000000003", "G00000000003", "G00000000003"
), DO221539 = c(681L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), DO221540 = c(148L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), DO221541 = c(650L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L), DO221542 = c(258L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L), DO221543 = c(57L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L), DO221544 = c(224L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L), DO221545 = c(60L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), DO221546 = c(161L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L), DO224575 = c(15L, 0L, 0L, 
0L, 0L, 949L, 0L, 0L, 0L, 0L)), class = "data.frame", row.names = c(NA, 
-10L))

我希望投放

结构(列表(gene_id = c(“ ENSG00000000003”))  ,DO221539 = 681L,DO221540 = 148L,DO221541 = 650L,DO221542 = 258L ,DO221543 = 57L,DO221544 = 224L,DO221545 = 60L,DO221546 = 61L,DO224575 = 949L,类=“ data.frame”,row.names = c(NA, -10L))

1 个答案:

答案 0 :(得分:0)

我们可以按'gene_id'分组,并用max来获取每一列的summarise_all

library(tidyverse)
df1 %>% 
   group_by(gene_id) %>% 
   summarise_all(max)
相关问题