我有一個格式為“IN_D44_A09_ET”的字串向量,我想使用 stringr 包提取數字 9。
我一直在嘗試使用 str_extract() 來解決它,但我不知道如何制定模式。
values <- c("IN_D44_A09_CT", "XE_D34_A15_ET")
str_extract(values, "_A(\\d )")
此模式提取“_A09”和“_A15”,但我想要的是“9”和“15”。
uj5u.com熱心網友回復:
你可以試試 sub
sub(".*_A0*(.*)_.*","\\1",values)
#[1] "9" "15"
uj5u.com熱心網友回復:
您可以使用lookbehind模式 -
as.integer(stringr::str_extract(values, '(?<=A)\\d '))
#[1] 9 15
uj5u.com熱心網友回復:
一種方法是使用str_extract兩次。首先str_exract,無論您得到什么輸出,將其存盤為向量并str_extract再次運行以獲得所需的輸出。
你可以這樣做:
values <- c("IN_D44_A09_CT", "XE_D34_A15_ET")
temp <- str_extract(values, "A(\\d )")
str_extract(temp, "(\\d )")
uj5u.com熱心網友回復:
library(stringr)
values <- c("IN_D44_A09_CT", "XE_D34_A15_ET")
str_match(values, 'A(\\d )')[, 2]
#> [1] "09" "15"
由reprex 包于 2022-01-22 創建(v2.0.1)
如果我們想洗掉零:
library(stringr)
values <- c("IN_D44_A00090_CT", "XE_D34_A0015_ET")
str_match(values, 'A(\\d )')[, 2] %>% str_replace('^0 ', '')
#> [1] "90" "15"
由reprex 包于 2022-01-22 創建(v2.0.1)
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/419376.html
標籤:
