Packagebaseversion 4.2.0


Parameters

sprintf(fmt, ...)gettextf(fmt, ..., domain = NULL, trim = TRUE)

参数【fmt】:格式字符串的字符向量,每个字符串最多 8192 个字节。

参数【…】:要传递给参数【fmt】的值。仅支持逻辑向量、整数向量、实数向量和字符向量,但会进行一些强制。最多100

参数【trim,domain】:参见 gettext


Details

sprintf 是系统 sprintf C 库函数的包装器。尝试检查传递的值的模式是否与提供的格式匹配,以及 R 的特殊值(NAInf-InfNaN)是否得到正确处理。

gettextf 是一个方便的函数,它提供 C 样式的字符串格式,并可以翻译格式字符串。

如果可能的话,参数(包括 fmt)被回收到最长的长度,然后并行完成格式化。允许使用零长度参数,并将给出零长度结果。即使未使用,也会计算所有参数,因此不允许使用某些类型(例如,“symbol”“language”,参见 typeof)。fmt 未使用的参数会导致警告。(格式 %.0s 可用于“跳过”参数。

字符串参数【fmt】包含传递到输出字符串的普通字符,以及对通过参数【…】提供的参数进行操作的转换规范允许的转换规范以 % 开头,以集合 aAdifeEgGosxX% 中的一个字母结尾。这些字母表示以下类型:

  • d,i,o,x,X:整数值,o 为八进制,x 和 X 为十六进制(对 a-f 使用与代码相同的大小写)。具有正好整数值的数值变量将被强制为整数。格式 d 和 i 也可用于逻辑变量,这些变量将转换为 0、1 或 NA。
  • f:双精度值,采用“定点”十进制表示法,格式为“[-]mmm.ddd”。小数位数 (“d”) 由精度指定:默认值为 6;精度为 0 会抑制小数点。非有限值被转换为 NA、NaN 或(可能后面跟着一个符号)Inf。
  • e,E:双精度值,采用 [-]m.ddde[+-]xx 或 [-]m.dddE[+-]xx 形式的“指数”十进制表示法。
  • g,G:双精度值,如果指数小于 -4 或大于或等于精度,则采用 %e 或 %E 格式,否则采用 %f 格式。(精度(默认值为 6)在此处指定有效位数,而在 %f、%e 中,它是小数点后的位数。
  • a,A:双精度值,采用二进制表示法,形式为 [-]0xh.hhhp[+-]d。这是一个以十六进制乘以 2 的(十进制)幂表示的二进制分数。小数点后的十六进制位数由精度指定:默认值为足以准确表示内部二进制表示形式的位数。非有限值被转换为 NA、NaN 或(可能后面跟着符号)Inf。 格式 %a 对 x、p 和十六进制值使用小写:格式 %a 使用大写。
  • s:字符串。字符 NA 将转换为“NA”。
  • %:文字百分比(在这种情况下,不允许使用下面给出的额外格式字符)。

as.character 的转换用于 s 的非字符参数,as 的 as.double 用于 f、e、E、g、G 的非双精度参数。 注意:长度是在转换之前确定的,所以如果这会改变长度,请不要依赖内部强制。强制只执行一次,因此如果 length(fmt) > 1,则所有元素都必须具有相同类型的参数。

此外,在初始 % 和终止转换字符之间,可以按任意顺序:

  • m,n:用句点分隔的两个数字,表示字段宽度 (m) 和精度 (n)。
  • -:在其字段中对转换后的参数进行左调整。
  • +:始终打印带符号的数字:默认情况下,仅打印带符号的负数。
  • 空格:如果第一个字符不是符号,则在空格前加上前缀。
  • 0:对于数字,填充到带有前导零的字段宽度。对于角色,这在某些平台上是零垫,而在另一些平台上被忽略。
  • #:指定数字的“备用输出”,其操作取决于类型:对于 x 或 X,0x 或 0X 将作为非零结果的前缀。对于 e、e、f、g 和 G,输出将始终具有小数点;对于 g 和 G,不会删除尾随零。