Как выбрать наибольшее значение col в r - PullRequest
0 голосов
/ 30 октября 2018

у меня есть один фрейм данных, который имеет повторяющиеся строки. Я хочу удалить повторяющиеся строки и выбрать строку для каждого sample_id, который является col с наибольшим значением каждого счетчика. Как я могу это сделать?

Пример данных (из комментариев):

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 голосов
/ 30 октября 2018

Мы можем сгруппировать по 'gene_id' и получить max каждого столбца с summarise_all

library(tidyverse)
df1 %>% 
   group_by(gene_id) %>% 
   summarise_all(max)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...