在R中,向不同大小的ID添加不同数量的前导零

时间:2015-03-11 19:01:57

标签: r

我是R的新手,我很难搞清楚1)如何让我的数据框显示在这个东西中,2)如何将不同长度的前导_0添加到主题ID。我的数据看起来像这样

id = c(1, 2, 3, 11, 12, 13, 110, 120, 130)
sex = c(1, 2, 2, 1, 2, 1, 1, 2, 2)
age = c(12, 13, 10, 9, 14, 12, 10, 9, 11)
df = data.frame(id, sex, age)
df

我想添加前导_0s,以便每个ID长3个数字。例如,1变为_001,11变为_011,_110保持原样。

有什么建议吗? 谢谢你的耐心......

2 个答案:

答案 0 :(得分:2)

stringr库已覆盖......

library(stringr)
> str_pad("1234", width=10, pad="0")
[1] "0000001234"

答案 1 :(得分:1)

基础R中的sprint函数可用于此:

> x <- c(1, 23, 456)
> sprintf("%03d", x)
[1] "001" "023" "456"