将字符串中的一位数字(1或5B)替换为两位数字(01或05B)

sh_student

假定以下字符向量与数字格式不一致:

myvec <- c( '50% of population live in block 50 number 27-04', 
'And 1% of population live in block 8 number 1-42', 
'And 1% of population live in block 5B number 1-8', 
'60% of population live in block 1641 number 17-23',
'80% of population live in block 677B number 5-3')

我想要一种一致的数字格式,以使每个数字都至少包含两位数:

c( '50% of population live in block 50 number 27-04', 
'And 01% of population live in block 08 number 01-42', 
'And 01% of population live in block 05B number 01-08', 
'60% of population live in block 1641 number 17-23',
'80% of population live in block 677B number 05-03')

如果更容易将所有数字都设为4位(最大位数),也可以:

c( '0050% of population live in block 0050 number 0027-0004', 
'And 0001% of population live in block 0008 number 0001-0042', 
'And 0001% of population live in block 0005B number 0001-0008', 
'0060% of population live in block 1641 number 0017-0023',
'0080% of population live in block 0677B number 0005-0003')

重要的是,所有具有相同数字位数的数字都应采用相同的格式。最后,我想读出块和编号(例如“ 50号块编号27-04”)并检查重复项(实际矢量要长得多,并且由块和编号中的重复项组成,但之前带有不同的文本)-目前我无法做到这一点,因为字符串的开头可能会有所不同。

我尝试了一些类似的方法,gsub("(\\d)+", "0\\1", myvec)但没有成功。

谢谢!

罗纳克·沙

我们可以使用stringr::str_replace_all将字符串中的所有数字替换为4位数字。

stringr::str_replace_all(myvec, "\\d+", function(m) sprintf("%04s", m))
#[1] "0050% of population live in block 0050 number 0027-0004"     
#[2] "And 0001% of population live in block 0008 number 0001-0042" 
#[3] "And 0001% of population live in block 0005B number 0001-0008"
#[4] "0060% of population live in block 1641 number 0017-0023"     
#[5] "0080% of population live in block 0677B number 0005-0003" 

您可以用输出中所需的位数替换"%04s"part in sprintf


由于某种原因,该方法%04s仅对我有效。%04d将提取的部分转换为整数后,我们可以按照@Jaap的建议使用

stringr::str_replace_all(myvec, "\\d+", function(m) sprintf("%04d", as.integer(m)))

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在R中使用Stringr将一位数字替换为两位数字

来自分类Dev

如何在R中使用Stringr将一位数字替换为两位数字

来自分类Dev

将数字字符串拆分为一位数字和两位数字的可能组合

来自分类Dev

python将一位数字的日期和月份转换为两位数

来自分类Dev

我如何在python 2.7中将一位数字输出为两位数

来自分类Dev

子字符串以捕获一位或两位数字

来自分类Dev

使用javascript根据一位或两位数字字符提取子字符串

来自分类Dev

java:将代表两位数字年份的字符串转换为四位数

来自分类Dev

当数字从两位数变为一位数时,如何使屏幕上的字体居中?

来自分类Dev

如何从字符串中间的数字中删除最后一位数字?

来自分类Dev

DateTime.ParseExact-如何解析具有相同格式字符串的一位数和两位数小时?

来自分类Dev

在python中增加字符串的最后一位数字

来自分类Dev

如何将零添加到字符串中的一位数字

来自分类Dev

PHP:将字符串中的前导零到一位数字连接起来

来自分类Dev

Python排序方法将两位数字字符串视为三位数字字符串

来自分类Dev

Python排序方法将两位数字字符串视为三位数字字符串

来自分类Dev

将字符串拆分为数字和文本,但接受其中包含一位数字的文本

来自分类Dev

有一些“两位数” <=“一位数” jQuery问题

来自分类Dev

有一些“两位数” <=“一位数” jQuery问题

来自分类Dev

一位数和两位数的分隔

来自分类Dev

Javascript - 如何总结一个数字的所有第一位和最后一位数字,直到只剩下两位数字?

来自分类Dev

需要Excel公式来提取字符或符号前的一位或两位数数字

来自分类Dev

如何将 CSV 文件中特定日期/时间字段值中的一位数小时修改为两位数小时?

来自分类Dev

正则表达式只是字符串中的最后一位数字

来自分类Dev

当日期列具有一位数字的月份和日期时,SQLite将字符串转换为日期

来自分类Dev

DateTime.ParseExact具有7位数字/一位或两位数月份

来自分类Dev

在特定位置移动名称中只有一位或两位数字的文件

来自分类Dev

如何从包含字符和数字的字符串中提取最后一位数字

来自分类Dev

如何从包含字符和数字的字符串中提取最后一位数字

Related 相关文章

  1. 1

    如何在R中使用Stringr将一位数字替换为两位数字

  2. 2

    如何在R中使用Stringr将一位数字替换为两位数字

  3. 3

    将数字字符串拆分为一位数字和两位数字的可能组合

  4. 4

    python将一位数字的日期和月份转换为两位数

  5. 5

    我如何在python 2.7中将一位数字输出为两位数

  6. 6

    子字符串以捕获一位或两位数字

  7. 7

    使用javascript根据一位或两位数字字符提取子字符串

  8. 8

    java:将代表两位数字年份的字符串转换为四位数

  9. 9

    当数字从两位数变为一位数时,如何使屏幕上的字体居中?

  10. 10

    如何从字符串中间的数字中删除最后一位数字?

  11. 11

    DateTime.ParseExact-如何解析具有相同格式字符串的一位数和两位数小时?

  12. 12

    在python中增加字符串的最后一位数字

  13. 13

    如何将零添加到字符串中的一位数字

  14. 14

    PHP:将字符串中的前导零到一位数字连接起来

  15. 15

    Python排序方法将两位数字字符串视为三位数字字符串

  16. 16

    Python排序方法将两位数字字符串视为三位数字字符串

  17. 17

    将字符串拆分为数字和文本,但接受其中包含一位数字的文本

  18. 18

    有一些“两位数” <=“一位数” jQuery问题

  19. 19

    有一些“两位数” <=“一位数” jQuery问题

  20. 20

    一位数和两位数的分隔

  21. 21

    Javascript - 如何总结一个数字的所有第一位和最后一位数字,直到只剩下两位数字?

  22. 22

    需要Excel公式来提取字符或符号前的一位或两位数数字

  23. 23

    如何将 CSV 文件中特定日期/时间字段值中的一位数小时修改为两位数小时?

  24. 24

    正则表达式只是字符串中的最后一位数字

  25. 25

    当日期列具有一位数字的月份和日期时,SQLite将字符串转换为日期

  26. 26

    DateTime.ParseExact具有7位数字/一位或两位数月份

  27. 27

    在特定位置移动名称中只有一位或两位数字的文件

  28. 28

    如何从包含字符和数字的字符串中提取最后一位数字

  29. 29

    如何从包含字符和数字的字符串中提取最后一位数字

热门标签

归档