r - sprintf ("%03d", 7) 功能的解释?

标签 r csv printf paste

我正在尝试在 R 中编写函数,其目的是读取多个 .csv 文件。它们被命名为 001.csv、002.csv、... 332.csv。

paste我设法构造了名称 1.csv、2.csv 等,但我在添加前导零时遇到了困难。有一个提示,像 sprintf("%03d", 7) 这样的结构是必需的,但我不知道为什么以及如何工作。

那么有人可以解释以下语句实际上可以做什么吗?

最佳答案

sprintf最初来自 C,所有格式规则也都取自它。见 ?sprintf在 R 或 thisthis引用以详细学习该主题。在这里,我将简要概述其背后的魔力。
"%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/

    相关文章:

    r - p.adjust 尊重整个数据框

    c++ - Getline 非常奇怪地读取 csv

    linux - 如何使用 linux 命令合并两个单列 csv 文件

    c - 了解此 C 程序的行为

    r - 在 R 中求周长与周围邻居的比率

    r - 将行追加到 data.table 的工作方式与 data.frame : How and why? 中的工作方式不同

    csv - Spark-如何在没有文件夹的情况下编写单个csv文件?

    c - Linux 中 __FUNCTION__ 的加宽版本

    c - 程序打印不正确的符号常量值

    r - 用户定义的函数在两个数据集之间进行 t 检验