Nothing
twkm <- function(x, centers, groups, lambda, eta, maxiter=100, delta=0.000001, maxrestart=10,seed=-1)
{
if (missing(centers))
stop("the number or initial clusters 'centers' must be provided")
if(seed<=0){
seed <-runif(1,0,10000000)[1]
}
vars <- colnames(x)
nr <-nrow(x) # nrow() return a integer type
nc <-ncol(x) # integer
if (is.data.frame(centers) || is.matrix(centers))
{
init <- TRUE
k <- nrow(centers)
}
else
{
init <- FALSE
k <- centers
centers <- double(k * nc)
}
# get the setting of feature group
if (is.character(groups) && length(groups) == 1) {
G <- .C(WSKM_parseGroup,as.character(groups),numGroups=integer(1), groupInfo=integer(nc))
} else if (is.vector(groups) && length(groups) == nc) {
G <- list()
grps <- as.factor(groups)
groupNames <- levels(grps)
G$numGroups <- nlevels(grps)
G$groupInfo <- as.integer(as.integer(grps) - 1)
}
set.seed(seed)
Z <- .C(WSKM_twkm,
x = as.double(as.matrix(x)),
nr,
nc,
k = as.integer(k),
lambda = as.double(lambda),
eta = as.double(eta),
G$numGroups,
G$groupInfo,
delta = as.double(delta),
maxIterations = as.integer(maxiter),
maxRestarts = as.integer(maxrestart),
as.logical(init),
# seed,
cluster = integer(nr),
centers=as.double(as.matrix(centers)),
featureWeight = double( nc),
groupWeight = double( G$numGroups),
iterations = integer(1),
restarts = integer(1),
totiters = integer(1),
totalCost = double(1),
totss = double(1),
withiness = double(k))
centers <- matrix( Z$centers)
dim(centers) <- c(k, nc)
colnames(centers) <- vars
featureWeight <- Z$featureWeight
groupWeight <- Z$groupWeight
ignore <- which(rowSums(centers==0) == ncol(centers))
if (length(ignore)) {
centers <- centers[-ignore,, drop=FALSE]
featureWeight <- featureWeight[-ignore,, drop=FALSE]
}
rownames(centers) <- 1:nrow(centers)
cluster <- Z$cluster + 1
size <- aggregate(cluster, list(cluster=cluster), length)[[2]]
result <- list(cluster = cluster,
centers = Z$centers,
totss = Z$totss,
withinss = Z$withinss,
tot.withinss = sum(Z$withiness),
betweenss = Z$totss-sum(Z$withinss),
size = size,
iterations = Z$iterations,
restarts = Z$restarts,
totiters=Z$totiters,
featureWeight = Z$featureWeight,
groupWeight = Z$groupWeight)
dim(result$centers) <- c(k, nc)
class(result) <- c("kmeans", "twkm")
return(result)
}
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.