R:在数据框中跨多个列连接字符串

时间:2017-08-16 20:08:00

标签: r text concatenation stringr

我有以下数据框,包含3列

category <- c("A", "A", "A", "B","B")
id <- c(1,1,2,3,3)
text <- c("abc", "def", "ghi", "jkl", "pqr")
df <- data.frame(category,id,text)

> df
category id text
1        A  1  abc
2        A  1  def
3        A  2  ghi
4        B  3  jkl
5        B  3  pqr

我想连接每组每个ID的文本

我的输出需要像:

A   1   "abc def"
A   2   "ghi"
B   3   "jkl pqr"

我尝试使用

library(stringr)
str_c(df[,3], collapse = NULL)

但是我的输出不正确,我怎样才能获得每组每个ID

1 个答案:

答案 0 :(得分:3)

使用dplyr,您可以:

library(dplyr)
df %>% group_by(category,id) %>% summarise(text=paste(text,collapse=" "))

  category    id    text
    <fctr> <dbl>   <chr>
1        A     1 abc def
2        A     2     ghi
3        B     3 jkl pqr