在R中的Dataframe中将多行合并为一行

Combining multiple rows into one single row in Dataframe in R

假设我有一个数据框,看起来像这样。

|类别 |文字 |

| :--------:| :--------------------: |

|第一 |我是格鲁特。 |

|第一 |我们是格鲁特。 |

|第二 |黑暗骑士崛起。 |

|第二 |我是蝙蝠侠。 |

但我们想将 Text 列中的行合并为一行,使其看起来像这样。

|类别 |文字 |

| ------ | ---------------------------------- |

|第一 |我是格鲁特。我们是格鲁特。 |

|第二 |黑暗骑士崛起。我是蝙蝠侠。 |

我该怎么做?

data.table解法:

library(data.table)
dt0 <- data.table(
  Category = c(rep("First", 2), rep("Second", 2)),
  Text = c("I am Groot.", "We are Groot.", "The Dark Knight Rises.", "I am Batman.")
)
dt <- dt0[, .(Text = paste0(Text, collapse = " ")), by = .(Category)]
dt

说明:paste0 获取列 Text(在 data.table 语法中计算为 dt$Text)并将其折叠为单个值。此计算针对 Category 中的每个唯一值执行,由 by = .(Category).

表示