2015-05-14 2 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=",") 
Смежные вопросы