我正在尝试在 R 中编写函数,其目的是读取多个 .csv 文件。它们被命名为 001.csv、002.csv、... 332.csv。
与 paste
我设法构造了名称 1.csv、2.csv 等,但我在添加前导零时遇到了困难。有一个提示,像 sprintf("%03d", 7)
这样的结构是必需的,但我不知道为什么以及如何工作。
那么有人可以解释以下语句实际上可以做什么吗?
最佳答案
sprintf
最初来自 C,所有格式规则也都取自它。见 ?sprintf
在 R 或 this或 this引用以详细学习该主题。在这里,我将简要概述其背后的魔力。"%03d"
是一个格式化字符串,它指定如何 7
将被打印。
d
代表 decimal integer
(不是 double
!),所以它说不会有浮点或类似的东西,只有一个常规整数。 3
显示打印的数字有多少位。更准确地说,该号码至少需要 3 位数字:7
将是 __7
(用空格代替下划线),但是 1000
将保留 1000
,因为无法仅用 3 位数字写入此数字。 0
之前 3
表明前导空格应该被零替换。尝试使用 sprintf("%+3d", 7)
, sprintf("%-3d", 7)
查看其他可能的修饰符(它们称为标志)。 话虽如此,
sprintf("%03d", 7)
的输出将是 007
.
关于r - sprintf ("%03d", 7) 功能的解释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23718936/