извлечь слова между двумя запятыми в R - PullRequest
3 голосов
/ 19 марта 2019

У меня есть следующая строка

word <- 'Fu Tien Mansion, Taikoo Shing, Hong Kong'

и я хочу извлечь слово между двумя запятыми и объединить его с первым словом, какое регулярное выражение использовать?

Желаемый вывод:

'Taikoo Shing Fu Tien Mansion' 

Ответы [ 4 ]

4 голосов
/ 19 марта 2019

Мы можем использовать sub для захвата подстрок как группы, а при замене использовать обратные ссылки этой группы

sub("^([^,]+),\\s*([^,]+),.*", "\\2 \\1", word)
#[1] "Taikoo Shing Fu Tien Mansion"
1 голос
/ 19 марта 2019
sapply(word, function(w){
    ind = gregexpr(",", w)[[1]]
    paste(substring(w, ind[1] + 2, ind[2] - 1),
          substring(w, 1, ind[1] - 1))
})
#Fu Tien Mansion, Taikoo Shing, Hong Kong 
#          "Taikoo Shing Fu Tien Mansion" 
1 голос
/ 19 марта 2019
> x <- strsplit(word, ",")[[1]]
> paste(x[2], x[1])
[1] " Taikoo Shing Fu Tien Mansion
0 голосов
/ 19 марта 2019

Вы также можете использовать sapply с strsplit -

> paste(trimws(sapply(strsplit(word,","), `[`, 2)), trimws(sapply(strsplit(word,","), `[`, 1)))
[1] "Taikoo Shing Fu Tien Mansion"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...