R/init_membership.R

Defines functions initMembership

Documented in initMembership

#' Membership
#' @import methods

initMembership<-function(){

  #' @name membership-class
  #' @rdname membership-class
  #' @slot member membership matrix
  #' @slot hard.label vector of hard hard.labeling
  #' @exportClass membership

  setClass("membership",
           representation = representation(member="matrix",
                                           hard.label="vector")
          )

  setMethod("is.na","membership",function(x) FALSE)
  setGeneric("member",function(object){standardGeneric("member")})
  setMethod("member","membership",function(object) object@member)
  setGeneric("hard.label",function(object){standardGeneric("hard.label")})
  setMethod("hard.label","membership",function(object) object@hard.label)

  setValidity("membership",
              function(object){
                if(length(hard.label(object))!= nrow(member(object)))
                  return("hard.label Mismatch\n")
                if(any(member(object)<0 ||member(object)>1))
                  return("Constraint of membership matrix violated\n")
                rowSum.membership<-rowSums(member(object))
                if(any(rowSum.membership!=1))
                  return("Constraint of membership matrix violated\n")
                if(any(!is.numeric(member(object))))
                  return("Not Numeric")
                if(anyNA(object))
                  return("Missing value on membership detected\n")
              })

  setMethod("show","membership",function(object){
    print.membership(object)
  })

}

Try the advfclust package in your browser

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

advfclust documentation built on May 2, 2019, 5:03 p.m.