/ / Łączenie łańcuchów za pomocą group_by i podsumowanie w r [duplikat] - r, dplyr

Łączenie ciągów za pomocą group_by i podsumowywanie w r [duplicate] - r, dplyr

Próbuję połączyć kolumnę ciągów razem na podstawie grupowania. Używam kodu, który wydaje mi się identyczny z tym, którego używali inni (np. użyj dplyr, aby połączyć kolumnę), ale to nie działa i nie mogę zrozumieć, dlaczego.

a = tibble(
x = c(1,2,1,2),
z = c("1","2","3","4")
)

a %>% group_by(x) %>% summarise(val=paste(z, collapse=" "))

Daje:

   val
1 1 2 3 4

Działa tak, jakby była tylko jedna grupa. Jednak gdy wykonuję inną funkcję, grupowanie działa poprawnie:

a %>% group_by(x) %>% tally()
# A tibble: 2 × 2
x     n
<dbl> <int>
1     1     2
2     2     2

Masz pojęcie, jaki może być problem?

Odpowiedzi:

3 dla odpowiedzi № 1

Może tak być plyr pakiet został również załadowany i zamaskowany summarise funkcja od dplyr ponieważ oba mają tę samą nazwę funkcji. Jedną z opcji jest użycie :: aby określić funkcję z dplyr pakiet

a %>%
group_by(x) %>%
dplyr::summarise(val=paste(z, collapse=" "))
# A tibble: 2 x 2
#      x   val
#  <dbl> <chr>
#1     1   1 3
#2     2   2 4