我有以下数据框:
> mydata
S.no ID1 ID2
1. 234 ABC
2. 345 ASD
3. 789 ASE
4. 567 ASW
5. 567 ASQ
6. 789 KLM
7. 345 GHJ
对于ID1
的每个唯一值,我想要ID2
中列出的所有值,例如:
S.no ID1 Count ID2
1. 234 1 ABC
2. 345 2 ASD
GHJ
3. 789 2 ASE
KLM
4. 567 2 ASW
ASQ
答案 0 :(得分:1)
我们可以尝试data.table
。转换' data.frame'到' data.table' (setDT(df1)
,按" ID1"分组,我们得到" S.no"的第一个元素,行数(.N
)和{{1 " ID2"元素在一起。
paste
或者使用library(data.table)
setDT(df1)[,list(S.no=S.no[1L], Count=.N,
ID2= paste(ID2, collapse=' ')) , ID1]
# ID1 S.no Count ID2
#1: 234 1 1 ABC
#2: 345 2 2 ASD GHJ
#3: 789 3 2 ASE KLM
#4: 567 4 2 ASW ASQ
,我们可以使用相同的方法
dplyr