Learn R Programming

CNprep (version 1.0)

get.center:

Usage

get.center(emfit, mincenter)

Arguments

emfit
mincenter

Value

    Examples

    Run this code
    ##---- Should be DIRECTLY executable !! ----
    ##-- ==>  Define data, use random,
    ##--	or do  help(data=index)  for the standard data sets.
    
    ## The function is currently defined as
    function (emfit, mincenter) 
    {
        newem <- list(mu = emfit$mu, pro = emfit$pro, z = emfit$z, 
            groups = emfit$groups, ngroups = emfit$ngroups, center = order(abs(emfit$mu))[1])
        while (newem$ngroups > 1) {
            omu <- order(abs(newem$mu))
            if (newem$pro[omu[1]] < mincenter) {
                gl <- min(omu[1:2])
                gr <- max(omu[1:2])
                newem$z[, gl] <- newem$z[, gl] + newem$z[, gr]
                newem$z <- matrix(ncol = ncol(newem$z) - 1, nrow = nrow(newem$z), 
                    data = newem$z[, -gr])
                newem$mu[gl] <- (newem$mu[gl] * newem$pro[gl] + newem$mu[gr] * 
                    newem$pro[gr])/(newem$pro[gl] + newem$pro[gr])
                newem$mu <- newem$mu[-gr]
                newem$pro[gl] <- newem$pro[gl] + newem$pro[gr]
                newem$pro <- newem$pro[-gr]
                newem$groups[gl, ] <- newem$groups[gl, ] + newem$groups[gr, 
                    ]
                newem$groups <- matrix(ncol = ncol(newem$groups), 
                    nrow = newem$ngroups - 1, data = newem$groups[-gr, 
                      ])
                newem$ngroups <- newem$ngroups - 1
                newem$center <- gl
            }
            else break
        }
        return(newem)
      }

    Run the code above in your browser using DataLab