以带前导零的数字序列创建文件名的字符向量

Posted

技术标签:

【中文标题】以带前导零的数字序列创建文件名的字符向量【英文标题】:Create character vector of filenames in numeric sequence with leading zeroes 【发布时间】:2015-11-09 02:37:32 【问题描述】:

我需要生成 100 个文件名。

你将如何在包含 100 个文件名的 R 中生成对应的字符向量 filesplot01.png, plot02.png, plot03.png, ..., plot99.png, plot100.png?注意前 9 个文件的编号都是从 0 开始的。

显而易见但非常无效的解决方案是编写一个包含 100 个文件名的向量。我试图找出一种更有效的方法来创建这个字符向量。

【问题讨论】:

paste(formatC(1:100, flag = "0", width = 3), "png", sep = ".") 不同场景但同样需要读取编号为001-100的文件:***.com/questions/21216454/… 或者只是sprintf("%02d.png", 1:100) ? @SamFirke - 更好:-) 将其发布为答案,尽管我认为他们想要%02d 如果您输入 3 位数字,您确定要 plot01 而不是 plot001 【参考方案1】:

一个简洁的选项是paste0("plot", sprintf("%02d.png", 1:100)):

  [1] "plot01.png"  "plot02.png"  "plot03.png"  "plot04.png" ...

另一种编写更多字符但可能更容易遵循的方法是使用 stringr 包中的 str_pad 进行字符串填充:

library(stringr)
paste0("plot", str_pad(1:100, width = 2, side = "left", pad = 0), ".png")

【讨论】:

【参考方案2】:

结合pasteformatC

paste(formatC(1:100, flag = "0", width = 2), "png", sep = ".")
#  [1] "01.png"  "02.png"  "03.png"  "04.png"  "05.png"  "06.png"  "07.png" ...

【讨论】:

我认为 OP 想要width=2

以上是关于以带前导零的数字序列创建文件名的字符向量的主要内容,如果未能解决你的问题,请参考以下文章

iOS 手记

dateFormat时间格式

如何将带有前导零的数字字符串转储为 yaml-cpp 中的有效 yaml 字符串?

iOS开发中的NSDateFormatter日期格式解析总结

将使用 PHP 创建的 csv 文件导入 Excel 时,如何在数字字符串值中保留前导零?

使用vba在excel中复制带有前导零的数字文本