Сохраняйте столбцы при группировке - PullRequest
1 голос
/ 16 июня 2020

Я новичок в R и искал помощь в Интернете, но примеры, которые я нашел среди похожих заголовков, не совсем соответствуют моим потребностям, потому что они имеют дело только с несколькими столбцами. У меня есть data.frame T1 с более чем 100 столбцами, и я ищу что-то вроде сводки, но я хочу сохранить все остальные столбцы после сводки. Я думал об использовании агрегата, но, поскольку это не функция, я не уверен. Я думаю, что наиболее многообещающий способ вы можете увидеть ниже. Спасибо большое

1 Ответ

0 голосов
/ 16 июня 2020

Расширяя комментарий TTS, если вы хотите сохранить любой другой столбец, вы должны использовать mutate вместо summarise, потому что, как сказано в документации , summarise() создает новый фрейм данных.

Поэтому вы должны использовать

T1 %>% group_by(ID) %>% mutate(AGI = paste(AGI, collapse = "; ")) %>% ungroup()

Data

T1 <- structure(list(ID = c(1L, 1L, 2L, 3L, 3L, 4L), UniProt_Accession = c("P25702", 
"F4HWZ6", "Q9C5M0", "Q9SR37", "Q9LKR7", "Q9FXI7"), AGI = c("AT1G54630", 
"AT1G54630", "AT5G19760", "AT3G09260", "AT5G28510", "AT1G19890"
)), class = "data.frame", row.names = c(NA, -6L))

Output

# A tibble: 6 x 3
#      ID UniProt_Accession AGI                 
#   <int> <chr>             <chr>               
# 1     1 P25702            AT1G54630; AT1G54630
# 2     1 F4HWZ6            AT1G54630; AT1G54630
# 3     2 Q9C5M0            AT5G19760           
# 4     3 Q9SR37            AT3G09260; AT5G28510
# 5     3 Q9LKR7            AT3G09260; AT5G28510
# 6     4 Q9FXI7            AT1G19890
...