извлечь подстроку из строки, указанной в списке - PullRequest
0 голосов
/ 28 ноября 2018

У меня есть два тибля, один с несколькими последовательными кодами неравной длины, а другой с кодами стран

codes <- as.tibble(c("brcomec", "frcomopf", "decombwf", "ezcomop", 
       "jpcomop", "aewheob", "ezcompis", "decomipf"))
countries <- as.tibble(c("br", "fr", "advecos", "af", "africa", "al", "dz", "as", "ad", 
                     "ao", "ai", "aq", "ag"))

Как мне извлечь страны из "кода", учитывая информацию в странах, т.е.чтобы получить что-то вроде

dta <- data.frame( 
~country , ~ rest , 
br       , comec  ,
fr       , comopf ,
...
) 

Я пытался с filter(str_detect(code, paste(countries))), но это не сработало, поэтому любая помощь любезно приветствуется.

1 Ответ

0 голосов
/ 29 ноября 2018

Хотите что-нибудь подобное?

library(tidyverse)
codes1 <- substr(codes$value, start = 1, stop = 2)
codes2 <- substr(codes$value, start = 3, stop = 10)

codes3 = tibble(codes1, codes2)
codes3

Что возвращает это?

# A tibble: 8 x 2
  codes1 codes2
  <chr>  <chr> 
1 br     comec 
2 fr     comopf
3 de     combwf
4 ez     comop 
5 jp     comop 
6 ae     wheob 
7 ez     compis
8 de     comipf
...