我想在R中编写函数,其目的是读取多个.csv文件。它们被命名为001.csv,002.csv,... 332.csv。sprintf(“%03d”,7)功能的解释?
随着paste
我设法建立名称1.csv,2.csv等,但我很难添加前导零。有迹象表明像sprintf("%03d", 7)
这样的建筑是必需的,但我不知道为什么以及如何运作。
那么有人可以解释下面的声明实际上可以做什么吗?
我想在R中编写函数,其目的是读取多个.csv文件。它们被命名为001.csv,002.csv,... 332.csv。sprintf(“%03d”,7)功能的解释?
随着paste
我设法建立名称1.csv,2.csv等,但我很难添加前导零。有迹象表明像sprintf("%03d", 7)
这样的建筑是必需的,但我不知道为什么以及如何运作。
那么有人可以解释下面的声明实际上可以做什么吗?
sprintf
最初来自C,并且所有的格式化规则也都从中获取。请参阅R中的?sprintf
或this或this参考,以详细了解该主题。在这里我将简要概述它背后的魔力。
"%03d"
是格式化字符串,它指定如何打印7
。
d
代表decimal integer
(不double
!),所以说,就没有浮点或类似的东西,只是一个普通的整数。3
显示打印号码有多少位数。更确切地说,这个数字至少需要 3个数字:7
将是__7
(使用空格而不是下划线),但1000
将保持1000
,因为没有办法只用3位数字来编写这个数字。0
之前3
显示前导空格应该被替换为零。尝试尝试sprintf("%+3d", 7)
,sprintf("%-3d", 7)
以查看其他可能的修饰符(它们被称为标记)。
您是否阅读过“?sprintf”帮助页面?有没有一个特定的部分对你不清楚? – MrFlick