當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


R symnum 符號數字編碼


R語言 symnum 位於 stats 包(package)。

說明

對給定的數值或邏輯向量或數組進行符號編碼。對於結構化矩陣(例如相關矩陣、稀疏矩陣或邏輯矩陣)的可視化特別有用。

用法

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

數字或邏輯向量或數組。

cutpoints

數值向量,其值cutpoints[j] (增強後,請參見下麵的corr)用於間隔。

symbols

字符向量,比(增強的,請參見下麵的 corr) cutpoints 短一個。 symbols[j] 用作(半開)間隔 的 ‘code’。

numeric.xFALSE 時,即默認情況下,當參數 xlogical 時,默認值為 c(".","|") (圖形 0 /1 秒)。

legend

邏輯指示是否需要 "legend" 屬性。

na

字符或邏輯。 NAs 是如何編碼的。如果 na == FALSENA 被編碼為不可見,包括下麵的 "legend" 屬性,否則會提到 NA 編碼。

eps

在左邊界和右邊界使用絕對精度。

numeric.x

邏輯指示是否應將 x 視為數字,否則視為邏輯。

corr

合乎邏輯的。如果 TRUEx 包含相關性。切點通過 01 進行擴充,並對 abs(x) 進行編碼。

show.max

如果是 TRUE 或模式 character ,則最大分割點將被特別編碼。

show.min

如果 TRUE 或模式 character ,則最小切點會被特別編碼。

abbr.colnames

邏輯、整數或 NULL 指示列名應如何縮寫(如果是);如果NULL(或FALSEx沒有列名),則列名全部為空,即"";否則,如果 abbr.colnames 為 false,則它們保持不變。如果 TRUE 或整數,現有列名稱將縮寫為 abbreviate(*, minlength = abbr.colnames)

lower.triangular

合乎邏輯的。如果TRUEx是矩陣,則僅矩陣的下三角部分被編碼為非空白。

diag.lower.tri

合乎邏輯的。如果 lower.triangular 且這是 TRUE ,則顯示矩陣的對角線部分。

noquote 的原子字符對象,其維度與 x 相同。

如果 legendTRUE(默認情況下,當有兩個以上的類時),結果具有屬性 "legend",其中包含返回的字符代碼的圖例,格式為

其中 = cutpoints[j] = symbols[j]

注意

可選(主要是邏輯)參數都嘗試使用智能默認值。在許多情況下,明確指定它們可能會顯著改善輸出。

例子

ii <- setNames(0:8, 0:8)
symnum(ii, cutpoints =  2*(0:4), symbols = c(".", "-", "+", "$"))
symnum(ii, cutpoints =  2*(0:4), symbols = 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.x = FALSE)

##-- Symbolic correlation matrices:
symnum(cor(attitude), diag.lower.tri = FALSE)
symnum(cor(attitude), abbr.colnames = NULL)
symnum(cor(attitude), abbr.colnames = FALSE)
symnum(cor(attitude), abbr.colnames = 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.lower.tri = FALSE)
symnum(cm2 <- cor(matrix(rnorm(900), 50, 18))) # < White Noise "BIG" n
symnum(cm2, lower.triangular = 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))

作者

Martin Maechler maechler@stat.math.ethz.ch

也可以看看

as.character; image

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Symbolic Number Coding。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。