Если вы хотите использовать список стран, вы можете создать из него строку поиска, а затем разбить строку по названию этих стран.
Редактировать : Дополнительные изменения сделаны на основе на комментарий.
Во-первых, в списке стран в скобках не указывается. Например: Боливия (многонациональное государство).
Кроме того, расщепление происходит только на целые слова (с пробелом после), так что DOMINICA не извлекается из DOMINICAN REPUBLI C.
Могут потребоваться другие (или лучшие) модификации регулярных выражений в зависимости от имеющегося списка. Я надеюсь, что это полезно.
library(stringr)
library(stringi)
esc_countries <- stri_replace_all_fixed(countries, pattern = c("(", ")"), replacement = c("\\(", "\\)"), vectorize_all = FALSE)
searchStr <- paste0(esc_countries, collapse = "(\\s)|")
result <- as.data.frame(str_split_fixed(trimws(unlist(strsplit(string, paste0("(?<=",searchStr,")"), perl = T))), " ", 2))
colnames(result) <- c("Vote", "Country")
Вывод
Vote Country
1 Y AFGHANISTAN
2 Y ALBANIA
3 A ALGERIA
4 Y ANDORRA
5 A ANGOLA
6 Y ANTIGUA AND BARBUDA
7 Y ARGENTINA
8 Y ARMENIA
9 Y AUSTRALIA
10 A AUSTRIA
11 Y AZERBAIJAN
12 Y BAHAMAS
13 Y BAHRAIN
14 Y BANGLADESH
15 Y BARBADOS
16 Y BELARUS
17 Y BELGIUM
18 Y BELIZE
19 Y BENIN
20 Y BHUTAN
21 Y CONGO
22 Y BOLIVIA (PLURINATIONAL STATE OF)
23 Y DOMINICA
24 Y DOMINICAN REPUBLIC
25 Y ZANZIBAR
Данные
(from @Ronak Shah)
string <- "Y AFGHANISTAN Y ALBANIA A ALGERIA Y ANDORRA A ANGOLA Y ANTIGUA AND BARBUDA Y ARGENTINA Y ARMENIA Y AUSTRALIA A AUSTRIA Y AZERBAIJAN Y BAHAMAS Y BAHRAIN Y BANGLADESH Y BARBADOS Y BELARUS Y BELGIUM Y BELIZE Y BENIN Y BHUTAN Y CONGO Y BOLIVIA (PLURINATIONAL STATE OF) Y DOMINICA Y DOMINICAN REPUBLIC Y ZANZIBAR"
countries <- c(
"AFGHANISTAN",
"ALBANIA",
"ALGERIA",
"ANDORRA",
"ANGOLA",
"ANTIGUA AND BARBUDA",
"ARGENTINA",
"ARMENIA",
"AUSTRALIA",
"AUSTRIA",
"AZERBAIJAN",
"BAHAMAS",
"BAHRAIN",
"BANGLADESH",
"BARBADOS",
"BELARUS",
"BELGIUM",
"BELIZE",
"BENIN",
"BHUTAN",
"CONGO",
"BOLIVIA (PLURINATIONAL STATE OF)",
"DOMINICA",
"DOMINICAN REPUBLIC",
"ZANZIBAR")