Try this: merge(df, df, by.x="V2", by.y="V1")
Jean On Mon, Aug 5, 2013 at 1:26 AM, PQuery <pierre.khoue...@embl.de> wrote: > Hi Guys, > > I have a list elements in two columns of a data frame. I want first to > subselect on V1 and then to form and count all possible and unique triplets > of V1 with the corresponding elements in V2 but exclude triplets for > which > a pair (V1 V2) does not exists: > > Example input > V1 V2 > A B > A C > D E > D F > D G > E F > E G > F G > > Example output > DEF > DEG > DFG > EFG > (ABC is eliminated because the pair B C does not exist in the data frame) > > Total: 4 triplets > > Here is what I tried, but was unsuccessful: > > uniq.V1 <- unique(df.V1) > original.pairs <- do.call(paste, c(df[c("V1", "V2")], sep = ":")) > nbElements <- 3 > > l.res<-lapply(uniq.V1, function(x){ > set <- c(x, unlist(subset(df$1==x, select=c(V2)))) > if(length(set) >= nbElements){ > tmp.combn <- combn(set, nbElements, simplify=FALSE) > ## I tried here to create all possible combination of pairs to test > with > the original pairs and return only the successful ones but it became a very > complicated structure .... > } > }) > > Any help/suggestion is appreciated, > Best > > > > > > -- > View this message in context: > http://r.789695.n4.nabble.com/obtain-triplets-from-Data-Frame-columns-tp4673091.html > Sent from the R help mailing list archive at Nabble.com. > > ______________________________________________ > 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. > [[alternative HTML version deleted]] ______________________________________________ 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.