This question already has answers here:
Collapse / concatenate / aggregate a column to a single comma separated string within each group
(4个答案)
3年前关闭。
我有一个看起来像这样的数据框
我想创建一个新列bars_by_foo,它是foo的bar值的串联。因此,新数据应如下所示:
我希望以下方法能起作用:
但是那个代码给我一个错误
我究竟做错了什么?
没有任何辅助功能
(4个答案)
3年前关闭。
我有一个看起来像这样的数据框
> 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
我想创建一个新列bars_by_foo,它是foo的bar值的串联。因此,新数据应如下所示:
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
我希望以下方法能起作用:
p <- function(v) {
Reduce(f=paste, x = v)
}
data %>%
group_by(foo) %>%
mutate(bars_by_foo=p(bar))
但是那个代码给我一个错误
Error: incompatible types, expecting a character vector
。我究竟做错了什么?
最佳答案
你可以做
data %>%
group_by(foo) %>%
mutate(bars_by_foo = paste0(bar, collapse = ""))
没有任何辅助功能
关于r - 用dplyr按组连接字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38514988/
10-11 10:57