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.

Reply via email to