Объединить уникальные строки после группового в R - PullRequest
0 голосов
/ 28 июня 2018

Я группирую фрейм данных и хочу объединить уникальные строки.

data= data.frame(
aa=c(1,2,3,4,5,6,7,8,9,10),
bb=c('a','a','a','a','a','b','b','b','b','b'),
cc=c('hello','hello','hi','message','bye','q','w','r','r','t'))

Желаемый вывод:

bb    cc
a     'hello hi message bye'
b     'q w r t'

В настоящее время я делаю это (предложил здесь ):

result<- data %>% 
  group_by(bb) %>%
  mutate(body = paste0(cc, collapse = "")) %>%
  summarise(t_body = first(body)

Но я получаю все строки, а не уникальные .

1 Ответ

0 голосов
/ 28 июня 2018

Используйте unique на cc перед вставкой, а также нет необходимости в шаге mutate, вы можете использовать summarize напрямую:

data %>% 
    group_by(bb) %>% 
    summarise(cc = paste(unique(cc), collapse = ' '))

# A tibble: 2 x 2
#  bb    cc                  
#  <fct> <chr>               
#1 a     hello hi message bye
#2 b     q w r t  
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...