On Fri, 11 Jul 2014 12:19:39 PM Ryan de Vera wrote: > Hello all, > > I have a data frame filled with senders and recipients. Some of the senders > have multiple rows with different recipients and I want to merge those > rows. For example I have > > a...@email.com b...@email.com > a...@email.com c...@email.com d...@email.com > r...@email.com f...@email.com > r...@email.com h...@email.com > > I want this to become > > a...@email.com b...@email.com c...@email.com d...@email.com > r...@email.com f...@email.com h...@email.com > > How would I go about doing this? > Hi Ryan, This is a bit messy, but assuming that you do have a data frame like this:
rdvdf<- data.frame(sender=rep(c("a...@email.com","r...@email.com"),each=2), recipient1=c("b...@email.com","c...@email.com","f...@email.com","h...@email.com"), recipient2=c(NA,"d...@email.com",NA,NA)) you can try this: newdat<-list() senderno<-1 for(sndr in unique(rdvdf$sender)) { newvec<- as.character(unique(unlist(rdvdf[rdvdf$sender==sndr,]))) newdat[[senderno]]<-newvec[!is.na(newvec)] senderno<-senderno+1 } Jim ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.