如何按顺序在paste0()下的向量中填充字符串

时间:2018-01-27 13:35:14

标签: r

我可以做以下事情:

> paste0("cat.", 1:10, ".jpg")

给出:

[1] "cat.1.jpg"  "cat.2.jpg"  "cat.3.jpg"  "cat.4.jpg"  "cat.5.jpg"  "cat.6.jpg"  "cat.7.jpg"  "cat.8.jpg" 
[9] "cat.9.jpg"  "cat.10.jpg"

如何填充paste0()以生成

[1] "cat.01.jpg"  "cat.02.jpg"  "cat.03.jpg"  "cat.04.jpg"  "cat.05.jpg"  "cat.06.jpg"  "cat.07.jpg"  "cat.08.jpg" 
[9] "cat.09.jpg"  "cat.10.jpg"

在一天结束时,我想做的是让序列直到1000

paste0("cat.", 1:1000, ".jpg")

获取类似cat.0001.jpg的字符串。

1 个答案:

答案 0 :(得分:2)

您可以尝试使用stringr's str_pad,如下所示:

library(stringr)
paste0("cat.", str_pad(1:10,width=2,side="left", pad=0), ".jpg")

要使其可扩展到1000,您可以选择将str_pad的第二个参数(宽度)更改为4.

?str_pad
  

在字符串,宽度和填充上进行矢量化。

     

用法

     

str_pad(字符串,宽度,边= c("左","右","两者"),pad ="&#34 ;)

<强>输出

> paste0("cat.", str_pad(1:10,2,pad=0), ".jpg")
 [1] "cat.01.jpg" "cat.02.jpg" "cat.03.jpg"
 [4] "cat.04.jpg" "cat.05.jpg" "cat.06.jpg"
 [7] "cat.07.jpg" "cat.08.jpg" "cat.09.jpg"
[10] "cat.10.jpg"

您也可以选择使用stringr::str_c代替paste0