You can use by to group duplicate elements and return their growth names.
tab <- read.table(text ='[,1] [,2] [,3] [,4] [,5] [,6] [,7] [,8] [,9] [,10] [,11] 1 1 3 2 3 1 1 2 3 3 2',head=T) x <- t(tab) by(x,x,FUN=rownames) INDICES: 1 [1] "X..1." "X..2." "X..6." "X..7." ---------------------------------------------------------------------------------------------------------- INDICES: 2 [1] "X..4." "X..8." "X..11." ---------------------------------------------------------------------------------------------------------- INDICES: 3 [1] "X..3." "X..5." "X..9." "X..10."
EDIT more beautiful conclusion
rownames(x) <- 1:nrow(x) > by(x,x,FUN=rownames) INDICES: 1 [1] "1" "2" "6" "7" ---------------------------------------------------------------------------------------------------------- INDICES: 2 [1] "4" "8" "11" ---------------------------------------------------------------------------------------------------------- INDICES: 3 [1] "3" "5" "9" "10"
source share