将多行合并为一行 (R)

Dav*_*era 0 r

我的数据格式如下

-------------------------
| A | a |            1   |
-------------------------
| A | a |            2   |
-------------------------
| A | a |            3   |
-------------------------
| B | b |            1   |
-------------------------
| B | b |            3   |
-------------------------
| B | b |            5   |
-------------------------
Run Code Online (Sandbox Code Playgroud)

基本上,如果第一个键相同,则除最后一列之外的所有列都相同。我想让数据框更加紧凑,而不是最后一列的每个实例一个观察,我有一个数字列表

像这样的东西:

-------------------------
| A | a |        1,2,3   |
-------------------------
| B | b |        1,3,5   |
-------------------------
Run Code Online (Sandbox Code Playgroud)

我正在学习 R 中的 tidyverse,但我很新,我还没有找到合适的函数来执行此操作。我很感激任何意见。

iod*_*iod 5

按 ID 列分组,并使用粘贴(使用collapse=",")汇总数字列。这将为您提供一个(字符)列,其中包含每个 ID 行的数字列表。

require(dplyr)
df<-data.frame(a=c("a","a","a","b","b"),b=c(1,2,3,1,2))
df %>% group_by(a) %>% summarize(b=paste(b,collapse=","))

# A tibble: 2 x 2
  a     b      
  <fct> <chr>  
1 a     1,2,3
2 b     1,2   
Run Code Online (Sandbox Code Playgroud)