[R] obtain triplets from Data Frame columns

PQuery pierre.khoueiry at embl.de
Mon Aug 5 08:26:07 CEST 2013


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.



More information about the R-help mailing list