Satish, If you rearrange your data into a network of nodes and edges, you can use the igraph package to identify disconnected (mutually exclusive) groups.
# example data df <- data.frame( Component = c("C1", "C2", "C1", "C3", "C4", "C5"), TLA = c("TLA1", "TLA1", "TLA2", "TLA2", "TLA3", "TLA3") ) # characterize data as a network of nodes and edges nodes <- levels(unlist(df)) edges <- apply(df, 2, match, nodes) # use the igraph package to identify disconnected groups library(igraph) g <- graph(edges) ngroup <- clusters(g)$membership df$Group <- ngroup[match(df$Component, nodes)] df Component TLA Group 1 C1 TLA1 1 2 C2 TLA1 1 3 C1 TLA2 1 4 C3 TLA2 1 5 C4 TLA3 2 6 C5 TLA3 2 Jean On Sun, Mar 27, 2016 at 7:56 PM, Satish Vadlamani < satish.vadlam...@gmail.com> wrote: > Hello All: > I would like to get some help with the following problem and understand how > this can be done in R efficiently. The header is given in the data frame. > > *Component, TLA* > C1, TLA1 > C2, TLA1 > C1, TLA2 > C3, TLA2 > C4, TLA3 > C5, TLA3 > > Notice that C1 is a component of TLA1 and TLA2. > > I would like to form groups of mutually exclusive subsets and create a new > column called group for this subset. For the above data, the subsets and > the new group column value will be like so: > > *Component, TLA, Group* > C1, TLA1, 1 > C2, TLA1, 1 > C1, TLA2, 1 > C3, TLA2, 1 > C4, TLA3, 2 > C5, TLA3, 2 > > Appreciate any help on this. I could have looped through the observations > and tried some logic but I did not try that yet. > > -- > > Satish Vadlamani > > [[alternative HTML version deleted]] > > ______________________________________________ > R-help@r-project.org mailing list -- To UNSUBSCRIBE and more, see > 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 -- To UNSUBSCRIBE and more, see 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.