仅当 R 数据帧中数字以 6 开头时才添加前导零

Wil*_*iam -2 formatting r digits

我有一个数据框,其中包含需要格式化的数字。如何仅向以 6 开头的数字添加前导零?使用str_pad()或看到的所有示例sprintf()并不完全像我的任务,我发现适应它们具有挑战性。我的虚拟数据框如下:

dummy_numbers
621103 
06102658  
19562106    
61102
0635467
Run Code Online (Sandbox Code Playgroud)

期望的结果是:

desired_numbers
0621103 
06102658  
19562106    
061102
0635467
Run Code Online (Sandbox Code Playgroud)

谢谢。

r2e*_*ans 5

我们只需要一个简单的“前导 6”正则表达式:

gsub("^6", "06", dummy)
# [1] "0621103"  "06102658" "19562106" "061102"   "0635467" 

identical(gsub("^6", "06", dummy), desired)
# [1] TRUE
Run Code Online (Sandbox Code Playgroud)

数据

dummy <- c("621103", "06102658", "19562106", "61102", "0635467")
desired <- c("0621103", "06102658", "19562106", "061102", "0635467")
Run Code Online (Sandbox Code Playgroud)