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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。