2015-05-14 68 views
2

我在R.我已经在那里的数据如下一个CSV文件,例如一个漂亮的初学者:如何根据R中的唯一值组合行?

ID Values 
820 D1,D2,FE 
730 D1,D2,D3,PC,Io,He,Bt,Te,AR,PG 
730 DV,GTH,LYT 
567 EDR,TYU,EOP,OMN 
567 FGH,KIH,IOP 

我想删除重复的ID和他们的数据添加到其Values列,像这样:

ID Values 
820 D1,D2,FE 
730 D1,D2,D3,PC,Io,He,Bt,Te,AR,PG,DV,GTH,LYT 
567 EDR,TYU,EOP,OMN,FGH,KIH,IOP 

如何在R中实现这一点?

回答

2
dat <- read.table(text="ID Values 
820 D1,D2,FE 
730 D1,D2,D3,PC,Io,He,Bt,Te,AR,PG 
730 DV,GTH,LYT 
567 EDR,TYU,EOP,OMN 
567 FGH,KIH,IOP", header=TRUE) 

dat2 <- dat %>% group_by(ID) %>% summarise(val=paste(Values, collapse=",")) 
2

您可以尝试

library(data.table) 
setDT(df1)[, list(Values=paste(Values, collapse=",")) ,ID] 

或者使用base R

aggregate(.~ID, df1, paste, collapse=",") 
相关问题