mam dataframe który wygląda takłączenia ciągów autorstwa grupy z dplyr
> data <- data.frame(foo=c(1, 1, 2, 3, 3, 3), bar=c('a', 'b', 'a', 'b', 'c', 'd'))
> data
foo bar
1 1 a
2 1 b
3 2 a
4 3 b
5 3 c
6 3 d
Chciałbym utworzyć nową kolumnę bars_by_foo która jest połączeniem wartości Bar od foo. Tak więc nowe dane powinny wyglądać następująco:
foo bar bars_by_foo
1 1 a ab
2 1 b ab
3 2 a a
4 3 b bcd
5 3 c bcd
6 3 d bcd
miałem nadzieję, że będzie działać co następuje:
p <- function(v) {
Reduce(f=paste, x = v)
}
data %>%
group_by(foo) %>%
mutate(bars_by_foo=p(bar))
Ale ten kod daje mi błąd
Error: incompatible types, expecting a character vector
.
Co robię źle?
Oh the collapse = "" to różnica! Bez tego to nie działa, dlatego napisałem funkcję pomocnika. – crf
Należy również pamiętać, że zwinięcie może być dowolne, po prostu nie może mieć wartości NULL. Możesz użyć collapse = "" lub collapse = "," jeśli chcesz. –