

   SSyymmbboolliicc NNuummbbeerr CCooddiinngg

        symnum(x, cutpoints=c(0.3, 0.6, 0.8, 0.9, 0.95),
               symbols=c(" ", ".", ",", "+", "*", "B"),
               legend = length(symbols) >= 3,
               na="?", eps=1e-5,
               corr = missing(cutpoints), show.max = if(corr) "1", show.min = NULL,
               lower.triangular = corr & is.matrix(x),
               diag.lower.tri = corr & !is.null(show.max))

   AArrgguummeennttss::

          x: numeric or logical vector or array.

   cutpoints: numeric vector whose values `cutpoints[j]' ==
             c[j]  (after augmentation, see `corr' below) are
             used for intervals.

    symbols: character vector, one shorter than (the augmented,
             see `corr' below) `cutpoints'.  `symbols[j]'==
             s[j] are used as ``code'' for the (half open)
             interval (c[j], c[j+1]].

             For `logical' argument `x', the default is
             `c(".","|")' (graphical 0 / 1 s).

     legend: logical indicating if a `"legend"' attribute is
             desired.

         na: character or logical. How `NAs' are coded.  If `na
             == FALSE', `NA's are coded invisibly, including
             the `"legend"' attribute below, which otherwise
             mentions NA coding.

        eps: absolute precision to be used at left and right
             boundary.

       corr: logical.  If `TRUE', `x' contains correlations.
             The cutpoints are augmented by `0' and `1' and
             `abs(x)' is coded.

   show.max: If `TRUE', or of mode `character', the maximal
             cutpoint is coded especially.

   show.min: If `TRUE', or of mode `character', the minmal cut-
             point is coded especially.

   lower.triangular: logical. If `TRUE' and `x' is a matrix,
             only the lower triangular part of the matrix is
             coded as non-blank.

   diag.lower.tri: logical. If `lower.triangular' and this are
             `TRUE', the diagonal part of the matrix is shown.

   VVaalluuee::

        An atomic character object of class `noquote' and the
        same dimensions as `x'.  If `legend' (`TRUE' by default
        when there more than 2 classes), it has an attribute
        `"legend"' containing a legend of the returned charac-
        ter codes, in the form

              c[1] `s[1]' c[2] `s[2]' ... `s[n]' c_[n+1]

        where c[j]` = cutpoints[j]' and s[j]` = symbols[j]'.

   AAuutthhoorr((ss))::

        Martin Maechler maechler@stat.math.ethz.ch

   SSeeee AAllssoo::

        `as.character'

   EExxaammpplleess::

        ii _ 0:8; names(ii) _ ii
        symnum(ii, cut= 2*(0:4), sym = c(".", "-", "+", "$"))
        symnum(ii, cut= 2*(0:4), sym = c(".", "-", "+", "$"), show.max=T)

        symnum(1:12 %% 3 == 0)# use for logical

        ##-- Symbolic correlation matrices:
        data(attitude)
        symnum(cor(attitude), diag = F)

        symnum(cor(rbind(1, rnorm(25), rnorm(25)^2)))
        symnum(cor(matrix(rexp(30, 1), 5, 18))) # <<-- PATTERN ! --
        symnum(cm1 <- cor(matrix(rnorm(90) ,  5, 18))) # < White Noise SMALL n
        symnum(cm1, diag=F)
        symnum(cm2 <- cor(matrix(rnorm(900), 50, 18))) # < White Noise "BIG" n
        symnum(cm2, lower=F)

        ## NA's:
        Cm <- cor(matrix(rnorm(60),  10, 6)); Cm[c(3,6), 2] <- NA
        symnum(Cm, show.max=NULL)

        ## Graphical P-values (aka "significance stars"):
        pval <- rev(sort(c(outer(1:6,10^-(1:3)))))
        symp <- symnum(pval, corr=F,
                  cutpoints = c(0,  .001,.01,.05, .1, 1),
                  symbols     =  c("***","**","*","."," "))
        noquote(cbind(P.val = format(pval), Signif= symp))

