自定义字符串填充

时间:2015-10-08 13:55:16

标签: r

我的数据框的列格式不正确。例如,第一行中的数据的ID为“1”,但其格式必须为:tt0000001,ID为“23212”,需要为:tt0023212

有没有办法可以将列的所有数据转换为这种格式?

2 个答案:

答案 0 :(得分:5)

使用sprintf

sprintf("tt%07d", 1)
sprintf("tt%07d", 23212)

修改

是的,您可以为每列执行此操作:

vec <- seq(37, 2000, 100)
sprintf("tt%07d", vec)
[1] "tt0000037" "tt0000137" "tt0000237" "tt0000337"
[5] "tt0000437" "tt0000537" "tt0000637" "tt0000737"
[9] "tt0000837" "tt0000937" "tt0001037" "tt0001137"
[13] "tt0001237" "tt0001337" "tt0001437" "tt0001537"
[17] "tt0001637" "tt0001737" "tt0001837" "tt0001937"

请注意vec是您的ID列(例如。df$id)。

答案 1 :(得分:1)

使用stringr包:

#dummy data
df <- data.frame(id = c("1","23212"))

library(stringr)
df$id1 <- paste0("tt", str_pad(myNames, 7, "left", "0"))

#result
df

#      id       id1
# 1     1 tt0000001
# 2 23212 tt0023212