我的数据格式如下
-------------------------
| 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,但我很新,我还没有找到合适的函数来执行此操作。我很感激任何意见。
按 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)