使用 R 中的 stringr 包从文本中提取字符序列

问题描述 投票:0回答:1

我有一个名为“观察”的文本专栏。在本文的中间,可能有一个 8 位数字的序列,对应于我想提取用于填充另一列的代码。例如,OBSERVA 列中的元组之一具有以下记录:“DO 29932940-2 OCCUPATION:RETIRED INFLUENZA UNDER ANALYSIS GAL”。在本例中,我需要提取数字 29932940。 我使用了“stringr”包中的“str_extract”函数,但没有得到满意的结果(8个数字的序列未识别,我只有NA)。

library(stringr)
dados_sivep_tratados$Teste  <- ifelse(
  dados_sivep_tratados$NU_DO == 0 & !is.na(dados_sivep_tratados$OBSERVA),
  str_extract(dados_sivep_tratados$OBSERVA, "\\b\\d{8}\\b"),
  NA
)
r string stringr
1个回答
0
投票

您可以使用

\\d{8}

library(stringr)

df <- data.frame(
  OBS = "DO 29932940-2 OCCUPATION: RETIRED INFLUENZA UNDER ANALYSIS GAL."
)

want <- str_extract(df$OBS, "\\d{8}")

print(want)
[1] "29932940"
© www.soinside.com 2019 - 2024. All rights reserved.