R语言如何删除字符串中0.00之后的所有多余无效内容?
R语言清理人口统计字符串多余内容方案
实现方法
你可以直接通过R内置的正则替换函数截断0.00后的所有无效内容,操作如下:
核心代码
假设你的原始数据存储在字符串向量pop_data中:
# 通用方案:所有行只要出现0.00,就截断其后的所有内容,保留0.00本身 pop_clean <- sub(pattern = "0\\.00.*", replacement = "0.00", x = pop_data)
可选优化方案
如果你担心正常行的0.00被误处理,可以仅对包含HTML标签的异常行执行清理:
# 先判断行内是否存在HTML标签,仅对异常行做截断 pop_clean <- ifelse( test = grepl(pattern = "<[^>]+>", x = pop_data), yes = sub(pattern = "0\\.00.*", replacement = "0.00", x = pop_data), no = pop_data )
说明
- 正则中
\\.用来转义匹配小数点,避免.匹配任意字符导致匹配错误 .*表示匹配任意数量的任意字符,因此0\\.00.*可以命中从第一个0.00到字符串末尾的所有内容- 处理完成后,异常的梵蒂冈行数据会被清理为标准格式:
"Holy See 801 0.25 2 2003 0 N.A. N.A. N.A. 0.00"
内容的提问来源于stack exchange,提问作者user16596066
相关产品推荐
相关产品推荐

