gpt4 book ai didi

R--给字符串添加前导零,没有固定的字符串格式

转载 作者:行者123 更新时间:2023-12-04 22:03:06 25 4
gpt4 key购买 nike

我有一列如下。

9453、55489、4588、18893、4457、2339、45489HQ、7833HQ

如果数字小于 5 位,我想添加前导零。但是,有些号码最后有“HQ”,有些没有。(我确实检查了其他帖子,他们在“HQ”部分没有类似的问题)

所以最终想要的输出应该是:

09453, 55489, 04588, 18893, 04457, 02339, 45489HQ, 07833HQ

知道怎么做吗?非常感谢您阅读我的帖子!

最佳答案

使用正则表达式的单行:

my_strings <- c("9453", "55489", "4588", 
"18893", "4457", "2339", "45489HQ", "7833HQ")

gsub("^([0-9]{1,4})(HQ|$)", "0\\1\\2",my_strings)

[1] "09453" "55489" "04588" "18893"
"04457" "02339" "45489HQ" "07833HQ"

解释:
^ start of string
[0-9]{1,4} one to four numbers in a row
(HQ|$) the string "HQ" or the end of the string

括号按顺序表示捕获组。所以 0\\1\\2意味着 0其次是第一个捕获组 [0-9]{1,4}和第二个捕获组 HQ|$ .

当然如果有 5 个数字,那么正则表达式不匹配,所以它不会改变。

关于R--给字符串添加前导零,没有固定的字符串格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48432173/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com