# TODO: Add comment
# 
# Author: E.Korsching  2024
###############################################################################


duplicated.group <- function(x){
	# looks for duplicates - ek version
	# returns vector as long as x
	#  with group lables: 0: unique, integer 1..n: groups of duplicates
	#  works from smaller to larger numbers
	xlen <- length(x)
	groups <- vector("integer",xlen)
	idxvar <- 1:xlen
	i <- T
	j <- 1	# counter
	while(i){
		foundX <- which(x[idxvar] %in% x[idxvar[1]], arr.ind=T)
		fXl <- length(foundX)
		if(fXl==1){
			groups[idxvar[foundX]] <- 0
		}else if(fXl>1){
			groups[idxvar[foundX]] <- j
			j <- j+1
		}
		idxvar <- idxvar[-foundX]
		idxvarl <- length(idxvar)
		if(idxvarl==1){
			groups[idxvar[1]] <- 0
			i <- F
		}else if(idxvarl==0){
			i <- F
		}
	}
	return(groups)
}


#a11 <- c(1,4,2,3,1,5,2,2,2,7,3)
#duplicated.group(x=a11)
#         1 0 2 3 1 0 2 2 2 0 3



