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.

Reply via email to