symnum {stats}R Documentation

Symbolic Number Coding


Symbolically encode a given numeric or logical vector or array.


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,
       abbr.colnames = has.colnames,
       lower.triangular = corr && is.numeric(x) && is.matrix(x),
       diag.lower.tri   = corr && !is.null(show.max))


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, NAs 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 minimal cutpoint is coded especially.
abbr.colnames logical, integer or NULL indicating how column names should be abbreviated (if they are); if NULL (or FALSE and x has no column names), the column names will all be empty, i.e., ""; otherwise if abbr.colnames is false, they are left unchanged. If TRUE or integer, existing column names will be abbreviated to abbreviate(*, minlength = abbr.colnames).
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.


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 character 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].


Martin Maechler

See Also



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

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

##-- Symbolic correlation matrices:
symnum(cor(attitude), diag = FALSE)
symnum(cor(attitude), abbr.= NULL)
symnum(cor(attitude), abbr.= FALSE)
symnum(cor(attitude), abbr.= 2)

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=FALSE)
symnum(cm2 <- cor(matrix(rnorm(900), 50, 18))) # < White Noise "BIG" n
symnum(cm2, lower=FALSE)

## 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=FALSE,
               cutpoints = c(0,  .001,.01,.05, .1, 1),
               symbols = c("***","**","*","."," "))
noquote(cbind(P.val = format(pval), Signif= symp))

[Package stats version 2.2.1 Index]