R Как найти наиболее частые комбинации - PullRequest
1 голос
/ 05 мая 2020

У меня есть набор данных о клиентах df, который выглядит следующим образом

df %>% 
  group_by(ID,Item) %>%
  mutate(n = n()) %>%
  group_by(Item) %>% 
  top_n(3, Item) %>% 
  select(-n)

, но похоже, что это не работает. Могу ли я получить решение dplyr?

dput:

structure(list(ID = c(1, 1, 1, 2, 2, 2, 3, 3, 3, 4, 4, 4, 5, 
5), Item = c("A", "B", "C", "A", "B", "B", "A", "B", "C", "A", 
"B", "C", "A", "B")), row.names = c(NA, -14L), class = c("tbl_df", 
"tbl", "data.frame"))

1 Ответ

2 голосов
/ 05 мая 2020

Один dplyr вариант может быть:

df %>%
 group_by(ID) %>%
 summarise(Item = paste(sort(unique(Item)), collapse = "")) %>%
 count(Item)

  Item      n
  <chr> <int>
1 AB        2
2 ABC       3
...