【问题标题】:R: concatenate string across multiple columns in data frame [duplicate]R:跨数据框中的多列连接字符串[重复]
【发布时间】:2017-08-16 20:08:00
【问题描述】:

我有以下 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

【问题讨论】:

  • 在带有aggregate的基础R中:aggregate(text ~ id + category, dat=df, paste)

标签: r text concatenation stringr


【解决方案1】:

使用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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多