我有一个名为“观察”的文本专栏。在本文的中间,可能有一个 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
)
您可以使用
\\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"