这似乎是一个简单的问题,但我无法找到解决这个问题的方法。
我有一个位于单个长向量中的文本文件,其表达式如下:
&nuSessao=26.2023
&nuSessao=21.2013.N
&nuSessao=24.2023
&Data=22/12/2023
&txFaseSessao=Ordem do Dia
&txFaseSessao=Fechamento
还有许多其他人。
我想以给定变量的所有实例的方式提取此信息并将其放入向量中:
[1] "&nuSessao=26.2023" "&nuSessao=21.2013.N" "&nuSessao=24.2023"
到目前为止,我已尝试对每个变量执行以下命令:
results<-stringr::str_extract_all(MyPage, "&nuSessao=*") |> unlist()
但是我拥有的只是搜索变量的精确马赫向量,而不是我需要的整个表达式:
results
[1] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[5] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[9] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[13] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[17] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[21] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[25] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[29] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[33] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[37] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[41] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[45] "&nuSessao=" "&nuSessao=" "&nuSessao=" "&nuSessao="
[49] "&nuSessao=" "&nuSessao="
我将不胜感激任何帮助
在基本 R 中,您可以在
strsplit
上使用 \n
来拆分大字符串,然后使用 grep
来识别具有所需模式的字符串:
strng <- "&nuSessao=26.2023
&nuSessao=21.2013.N
&nuSessao=24.2023
&Data=22/12/2023
&txFaseSessao=Ordem do Dia
&txFaseSessao=Fechamento"
mySplits <- strsplit(strng, "\n")[[1]]
# [1] "&nuSessao=26.2023" "&nuSessao=21.2013.N" "&nuSessao=24.2023"
# [4] "&Data=22/12/2023" "&txFaseSessao=Ordem do Dia" "&txFaseSessao=Fechamento"
grep("nuSessao", mySplits, value = TRUE)
# [1] "&nuSessao=26.2023" "&nuSessao=21.2013.N" "&nuSessao=24.2023"
既然您标记了
stringr
,类似的方法就是使用str_split
和str_detect
:
mySplits <- str_split(strng, "\n")[[1]]
mySplits[str_detect(mySplits, "nuSessao")]