Como identificar apenas palavras que estão unidas por “-” em R? [duplicado]

Dec 13 2020

Vamos supor que tenho o seguinte texto em R:

x = "The effects in the medium-term of an appreciation of the exchange rate are still to be carefully assessed in our projections. However, we can observe in the short-term that the our pogramme of purchasing asset-backed securities had a positive impact on overall economic activity"

Como posso obter apenas o seguinte:

# medium-term
# short-term
# asset-backed 

Basicamente, eu precisaria extrair apenas as palavras vinculadas por "-".

Alguém pode me ajudar?

Obrigado!

Respostas

1 KarthikS Dec 13 2020 at 17:45

Isto funciona:

library(stringr)
str_extract_all(x, '\\b[a-z]+-[a-z]+\\b')[[1]]
[1] "medium-term"  "short-term"   "asset-backed"
1 RonakShah Dec 13 2020 at 17:47

Na base R, você pode usar:

regmatches(x, gregexpr('\\w+-\\w+', x))[[1]]
#[1] "medium-term"  "short-term"   "asset-backed"