由于缺乏正則運算式知識,我不知道如何使用正則運算式洗掉 r 中的點和點之前的數字。
有一個簡短的例子。我有一個向量a。
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
我想使用str_remove()from dplyrpackage洗掉點和點之前的數字。但我不知道如何撰寫正則運算式。
最終結果應該是這樣的:
a_expected = c('age41_50', 'age51_60', 'age61_70', 'age71_80',
'age1_20', 'age21_30', 'age31_40', 'ageupwith65', 'agelo65', 'PM2_5')
任何幫助將不勝感激!
uj5u.com熱心網友回復:
library(tidyverse)
library(rebus)
#>
#> Attaching package: 'rebus'
#> The following object is masked from 'package:stringr':
#>
#> regex
#> The following object is masked from 'package:ggplot2':
#>
#> alpha
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')
# * means zero or more
str_replace(a, START %R% DIGIT %R% '*' %R% DOT, '')
#> [1] "age41_50" "age51_60" "age61_70" "age71_80" "age1_20"
#> [6] "age21_30" "age31_40" "ageupwith65" "agelo65" "PM2_5"
#or
# means one or more
str_replace(a, '^\\d \\.', '')
#> [1] "age41_50" "age51_60" "age61_70" "age71_80" "age1_20"
#> [6] "age21_30" "age31_40" "ageupwith65" "agelo65" "PM2_5"
由reprex 包(v2.0.1)于 2021 年 11 月 18 日創建
uj5u.com熱心網友回復:
str_remove(a, pattern = "^\\d*.")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/362075.html
