R 自定义字符串填充

R 自定义字符串填充,r,R,我有一个列格式不正确的数据框。例如,第一行中的我的数据的id为“1”,但它的格式必须是:tt0000001,id“23212”必须是:TT002312 有没有办法将一列的所有数据转换成这种格式?使用sprintf: sprintf("tt%07d", 1) sprintf("tt%07d", 23212) 编辑 是的,您可以为每个列执行此操作: vec <- seq(37, 2000, 100) sprintf("tt%07d", vec) [1] "tt0000037" "tt0000

我有一个列格式不正确的数据框。例如,第一行中的我的数据的id为“1”,但它的格式必须是:
tt0000001
,id“23212”必须是:
TT002312


有没有办法将一列的所有数据转换成这种格式?

使用
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使用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
#虚拟数据

df谢谢,有没有办法对数据框中的所有行执行此操作?我有2100万个,所以不想手动为每个:)谢谢!我只是这样做了,而且很有效。但是,它打印结果,而不是更新数据帧。是否有方法更新数据帧?只需为其分配新值:
df$id