r - 使用 dplyr 按组连接字符串

标签 r dplyr

这个问题在这里已经有了答案:





Collapse / concatenate / aggregate a column to a single comma separated string within each group

(4 个回答)


4年前关闭。




我有一个看起来像这样的数据框

> 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,它是 bar 的值与 foo 的连接。所以新数据应该是这样的:
  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/

相关文章:

r - 折叠 tidyverse 中的一些分类变量

按组用第一个观察值替换所有值

r - 为什么 .env 代词在 dplyr::slice_max 中不起作用?

r - 限制geom_line的x轴范围(由斜率和截距定义)

r - 如何在R中创建一个空矩阵?

r - 提高 ggplot 极坐标图的多边形分辨率

R:如何根据最近的 N 行值生成具有行值的列

r - 匹配从另一个数据框中选择最大值

r - ggplot2 虚线用于绘图的一部分

r - 将分组模型重新应用到数据上