% str_c(collapse="-") 并且很好奇是-6ren">
gpt4 book ai didi

r - Stringr - 删除连字符两侧的前导零

转载 作者:行者123 更新时间:2023-12-02 02:24:20 24 4
gpt4 key购买 nike

对于每个标题,我正在寻找一种方法来删除连字符两侧的前导零。

codes <- c("0002-01014", "0020-0014","00014-00010")
want <- c("2-1014","20-14","14-10")

我想可以将数字分成两部分,删除前导零,然后粘贴在一起,但我想知道是否有更精细的方法使用str_extract()str_replace的单步() 或类似内容。

编辑:

我目前正在使用

str_split("0002-01010","-",simplify=T) %>%
str_replace("^0+(?!$)", "") %>%
str_c(collapse="-")

并且很好奇是否有可以在单行中实现的替代方法。

最佳答案

你可以使用

codes <- c("0002-01014", "0020-0014","00014-00010", "00000-122345")
gsub("\\b0+\\B", "", codes, perl=TRUE)
# => [1] "2-1014" "20-14" "14-10" "0-122345"

请参阅R demoregex demo .

\b 匹配字符串开头或非单词字符与单词字符之间的位置,此处为字符串开头或 - 与之间下一个数字。 0+ 匹配一个或多个零,尽可能多。 \B 确保匹配在数字之前停止,因此如果数字中只有零,最后一个保持不变。

关于r - Stringr - 删除连字符两侧的前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65926745/

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