format
位於 base
包(package)。 說明
格式化一個R用於漂亮打印的對象。
用法
format(x, ...)
## Default S3 method:
format(x, trim = FALSE, digits = NULL, nsmall = 0L,
justify = c("left", "right", "centre", "none"),
width = NULL, na.encode = TRUE, scientific = NA,
big.mark = "", big.interval = 3L,
small.mark = "", small.interval = 5L,
decimal.mark = getOption("OutDec"),
zero.print = NULL, drop0trailing = FALSE, ...)
## S3 method for class 'data.frame'
format(x, ..., justify = "none")
## S3 method for class 'factor'
format(x, ...)
## S3 method for class 'AsIs'
format(x, width = 12, ...)
參數
x |
任何R對象(概念上);通常是數字。 |
trim |
邏輯性;如果 |
digits |
一個正整數,指示數字和複數 |
nsmall |
以非科學格式格式化實數/複數時小數點右側的最小位數。允許的值為 |
justify |
字符向量應該左對齊(默認)、右對齊、居中還是單獨左對齊。可以縮寫。 |
width |
|
na.encode |
邏輯: |
scientific |
指定實向量或複向量的元素是否應以科學格式編碼的邏輯,或整數懲罰(請參閱 |
... |
傳入或傳出其他方法的進一步參數。 |
big.mark , big.interval , small.mark , small.interval , decimal.mark , zero.print , drop0trailing |
用於美化(較長的)數字和複雜序列。傳遞到 |
細節
format
是一個通用函數。除了此處說明的方法之外,還有用於日期的方法(請參閱 format.Date
)、date-times (請參閱 format.POSIXct
)以及其他類(例如 format.octmode
和 format.dist
)。
format.data.frame
逐列格式化數據幀,對每列應用 format
的適當方法。列的方法通常與 as.character
類似,但提供更多控製。矩陣和 data-frame 列將在結果中轉換為單獨的列,字符列(通常是全部)將被賦予類 "AsIs"
。
format.factor
將因子轉換為字符向量,然後調用默認方法(因此 justify
適用)。
format.AsIs
處理從數據幀中提取的複雜對象列。字符對象和(原子)矩陣傳遞給默認方法(因此 width
不適用)。否則,它調用 toString
將對象轉換為字符(如果是向量或列表,逐個元素),然後右對齊結果。
字符向量(以及通過其方法轉換為字符向量的對象)的調整是在顯示寬度上完成的(請參閱 nchar
),采用雙寬度字符和特殊字符的呈現(作為轉義序列,包括轉義反斜杠但不轉義雙引號) :請參閱 print.default
)。因此,寬度由 print(quote =
FALSE)
顯示,而不是由 cat
顯示。字符串用空格填充至最寬的顯示寬度。 (如果 na.encode = FALSE
缺失的字符串不包含在寬度計算中並且不進行編碼。)
數字向量使用最少的小數位數進行編碼,以將所有元素顯示為至少 digits
有效數字。然而,如果所有元素都有尾隨零,則小數位數會減少,直到至少一個元素具有非零的最終數字;另請參閱上麵 big.*
、 small.*
等的參數文檔。請參閱 print.default
中有關 digits >= 16
的注釋。
原始向量由 as.character
轉換為其 2 位十六進製表示形式。
當 isS4(x)
為 true 時,format.default(x)
現在提供 “minimal” 字符串。
雖然內部代碼通常尊重“小數點”選項 getOption("OutDec")
,但 decimal.mark
優先於該選項。同樣, scientific
優先於 getOption("scipen")
。
值
與 x
結構類似的對象,包含第一個參數 x
的元素的字符表示形式,采用通用格式,並采用當前區域設置的編碼。
對於字符、數字、複數或因子 x
,暗淡和暗淡名稱保留在矩陣/數組上,名稱保留在向量上:不複製其他屬性。
如果 x
是列表,則結果是通過將 format.default(x, ...)
應用於列表的每個元素(在本身就是列表的 unlisting
元素之後),然後使用 paste(collapse = ", ")
折疊每個元素的結果而獲得的字符向量。本例中的默認值是trim = TRUE, justify = "none"
,因為人們通常不希望在折疊的字符串中對齊。
例子
format(1:10)
format(1:10, trim = TRUE)
zz <- data.frame("(row names)"= c("aaaaa", "b"), check.names = FALSE)
format(zz)
format(zz, justify = "left")
## use of nsmall
format(13.7)
format(13.7, nsmall = 3)
format(c(6.0, 13.1), digits = 2)
format(c(6.0, 13.1), digits = 2, nsmall = 1)
## use of scientific
format(2^31-1)
format(2^31-1, scientific = TRUE)
## scientific = numeric scipen (= {sci}entific notation {pen}alty) :
x <- c(1e5, 1000, 10, 0.1, .001, .123)
t(sapply(setNames(,-4:1),
\(sci) sapply(x, format, scientific=sci)))
## a list
z <- list(a = letters[1:3], b = (-pi+0i)^((-2:2)/2), c = c(1,10,100,1000),
d = c("a", "longer", "character", "string"),
q = quote( a + b ), e = expression(1+x))
## can you find the "2" small differences?
(f1 <- format(z, digits = 2))
(f2 <- format(z, digits = 2, justify = "left", trim = FALSE))
f1 == f2 ## 2 FALSE, 4 TRUE
## A "minimal" format() for S4 objects without their own format() method:
cc <- methods::getClassDef("standardGeneric")
format(cc) ## "<S4 class ......>"
參考
Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) The New S Language. Wadsworth & Brooks/Cole.
也可以看看
format.info
指示原子向量的格式。
formatC
, paste
, as.character
, sprintf
, print
, prettyNum
, toString
, encodeString
。
相關用法
- R formatDL 格式說明列表
- R formatC 使用 C 樣式格式進行格式化
- R format.pval 設置 P 值格式
- R format.info 格式(.)信息
- R formals 訪問和操縱形式參數
- R force 強製評估論證
- R forceAndCall 調用帶有強製參數的函數
- R file.path 構造文件路徑
- R funprog 函數式編程語言中常見的高階函數
- R findInterval 查找區間數或索引
- R file.info 提取文件信息
- R file.show 顯示一個或多個文本文件
- R factor 因子
- R function 函數定義
- R file.access 確定文件的可訪問性
- R files 文件操作
- R file.choose 交互式選擇文件
- R files2 目錄和文件權限的操作
- R find.package 查找套餐
- R grep 模式匹配和替換
- R getwd 獲取或設置工作目錄
- R vector 向量 - 創建、強製等
- R lapply 對列表或向量應用函數
- R dump R 對象的文本表示
- R Sys.getenv 獲取環境變量
注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Encode in a Common Format。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。