以带前导零的数字序列创建文件名的字符向量
Posted
技术标签:
【中文标题】以带前导零的数字序列创建文件名的字符向量【英文标题】:Create character vector of filenames in numeric sequence with leading zeroes 【发布时间】:2015-11-09 02:37:32 【问题描述】:我需要生成 100 个文件名。
你将如何在包含 100 个文件名的 R 中生成对应的字符向量 files
:plot01.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】:结合paste
和formatC
:
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
以上是关于以带前导零的数字序列创建文件名的字符向量的主要内容,如果未能解决你的问题,请参考以下文章
如何将带有前导零的数字字符串转储为 yaml-cpp 中的有效 yaml 字符串?
iOS开发中的NSDateFormatter日期格式解析总结