symnum {stats} | R Documentation |
Symbolically encode a given numeric or logical vector or array. Particularly useful for visualization of structured matrices, e.g., correlation, sparse, or logical ones.
symnum(x, cutpoints = c(0.3, 0.6, 0.8, 0.9, 0.95), symbols = if(numeric.x) c(" ", ".", ",", "+", "*", "B") else c(".", "|"), legend = length(symbols) >= 3, na = "?", eps = 1e-5, numeric.x = is.numeric(x), corr = missing(cutpoints) && numeric.x, 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 |
symbols |
character vector, one shorter than (the
augmented, see When |
legend |
logical indicating if a |
na |
character or logical. How |
eps |
absolute precision to be used at left and right boundary. |
numeric.x |
logical indicating if |
corr |
logical. If |
show.max |
if |
show.min |
if |
abbr.colnames |
logical, integer or |
lower.triangular |
logical. If |
diag.lower.tri |
logical. If |
An atomic character object of class noquote
and the same
dimensions as x
.
If legend
is TRUE
(as by default when there are more
than two classes), the result has an attribute "legend"
containing a legend of the returned character codes, in the form
c[1] \sQuote{s[1]} c[2] \sQuote{s[2]} … \sQuote{s[n]} c_[n+1]
where c[j] = cutpoints[j]
and
s[j] = symbols[j]
.
The optional (mostly logical) arguments all try to use smart defaults. Specifying them explicitly may lead to considerably improved output in many cases.
Martin Maechler maechler@stat.math.ethz.ch
ii <- setNames(0:8, 0:8) symnum(ii, cut = 2*(0:4), sym = c(".", "-", "+", "$")) symnum(ii, cut = 2*(0:4), sym = c(".", "-", "+", "$"), show.max = TRUE) symnum(1:12 %% 3 == 0) # --> "|" = TRUE, "." = FALSE for logical ## Pascal's Triangle modulo 2 -- odd and even numbers: N <- 38 pascal <- t(sapply(0:N, function(n) round(choose(n, 0:N - (N-n)%/%2)))) rownames(pascal) <- rep("", 1+N) # <-- to improve "graphic" symnum(pascal %% 2, symbols = c(" ", "A"), numeric = FALSE) ##-- 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))