如何在R中使用正则表达式删除字符串中点及点之前的数字
你需要的正则模式为 ^\\d+\\.,各部分含义如下:
^锚定匹配位置为字符串开头,避免误删字符串中间的数字加小数点组合\\d+匹配1个及以上的连续数字,可适配1位、2位甚至更多位数的前缀\\.匹配数字后紧跟的小数点,.在正则中是特殊通配符,需要用反斜杠转义,R语法中要写两个反斜杠才能识别为转义符
str_remove 属于stringr包,加载tidyverse时会自动附带加载,完整实现代码如下:
# 加载包,仅用dplyr的话可以换成library(tidyverse) library(stringr) # 定义原向量 a = c('1.age41_50', '2.age51_60', '3.age61_70', '4.age71_80', '5.age1_20', '6.age21_30', '7.age31_40', '8.ageupwith65', '9.agelo65', '10.PM2_5') # 执行删除操作 a_result <- str_remove(a, pattern = "^\\d+\\.")
执行后打印a_result即可得到你需要的预期输出:
print(a_result) # [1] "age41_50" "age51_60" "age61_70" "age71_80" "age1_20" "age21_30" # [7] "age31_40" "ageupwith65" "agelo65" "PM2_5"
内容的提问来源于stack exchange,提问作者zhiwei li
相关产品推荐
相关产品推荐

