R/SD_SDbw_indicies.R

Defines functions clv.SDbw clv.SD clv.DensBw clv.Dis clv.Scatt

Documented in clv.DensBw clv.Dis clv.Scatt clv.SD clv.SDbw

clv.Scatt <- function( data, clust, dist="euclidean")
{
	data = data.validity(data, "data")
	clust = cls.id.vect.validity(clust, "clust")
	dist = dist.validity(dist)
	
	if(dim(data)[1] != length(clust))
		stop("Bad input data: number of 'data' objects do not agree with length of vector 'clust'.")
	
	clust_num = as.integer(max(clust))
	scatt <- .Call( "Scatt",
					data,
					clust,
					clust_num,
					dist,
					PACKAGE="clv"
				  )

	class(scatt) = "scatt.obj"

	return(scatt)
}

clv.Dis <- function(cluster.center)
{
	cluster.center = data.validity(cluster.center, "cluster.center")

	dis <- .Call( "Dis",
				  cluster.center,
				  PACKAGE="clv"
				)

	return(dis)
}

clv.DensBw <- function( data, clust, scatt.obj, dist="euclidean" )
{
	data = data.validity(data, "data")
	clust = cls.id.vect.validity(clust, "clust")
	dist = dist.validity(dist)
	
	if( class(scatt.obj) != "scatt.obj" )
		stop("Bad input data: 'scatt.obj' is not a result of 'clv.Scatt' function.")
	
	if(dim(data)[1] != length(clust))
		stop("Bad input data: number of 'data' objects do not agree with length of vector 'clust'.")

	dens <- .Call( "Dens_bw",
					data,
					clust,
					scatt.obj$cluster.center,
					scatt.obj$stdev,
					dist,
					PACKAGE="clv"
				  )

	return(dens)
}

clv.SD <- function( scatt, dis, alfa )
{
	return( alfa*scatt + dis )	
}

clv.SDbw <- function( scatt, dens )
{
	return( scatt + dens )	
}

Try the clv package in your browser

Any scripts or data that you put into this service are public.

clv documentation built on Sept. 28, 2023, 9:06 a.m.