Вы можете сделать это с помощью регулярного выражения. Основываясь на двух примерах, я определила два шаблона: 1) удалить все до -
и 2) удалить все внутри паренов ()
.
Вот одно из решений:
string <- c("Trade (% of GDP) – Latin America & Caribbean (WB/WDI/NE.TRD.GNFS.ZS-ZJ)", "Trade (% of GDP) – North America (WB/WDI/NE.TRD.GNFS.ZS-XU)" )
gsub("^.*\\s–\\s|\\s*\\([^\\)]+\\)", "", string)
#> [1] "Latin America & Caribbean" "North America"
Создано в 2019-03-10 пакетом представ. (v0.2.1)
Первая часть регулярного выражения ^.*\\s–\\s
гласит: «возьмите все символы с начала строки, прежде чем мы найдем -
».
В регулярном выражении |
означает ИЛИ, поэтому второе регулярное выражение \\s*\\([^\\)]+\\
идентифицирует весь текст (и начальные / конечные пробелы) внутри паренов. Закажите для этого вопроса для этого регулярного выражения.