Извлечь последнее слово в строке после запятой, если есть несколько слов, кроме первого слова
У меня есть данные, где слова следующие
location<- c("xyz, sss, New Zealand", "USA", "Pris,France")
id<- c(1,2,3)
df<-data.frame(location,id)
Я хотел бы извлечь название страны из данных. Сложность в том, что если я извлеку только последнее слово, у меня будет только одна запись (Франция).
library(stringr)
df$country<- word(df$location,-1)
Любые идеи о том, как извлечь данные страны из этих данных?
id location country
1 xyz, sss, New Zealand New Zealand
2 USA USA
3 Pris,France France
2 ответа
Решение
Ты можешь попробовать sub
df$country <- sub('.*,\\s*', '', df$location)
df$country
#[1] "New Zealand" "USA" "France"
Или же
library(stringr)
str_extract(df$location, '\\b[^,]+$')
#[1] "New Zealand" "USA" "France"
stringi
решение:
require(stringi)
location<- c("xyz, sss, New Zealand", "USA", "Pris,France")
stri_trim(stri_match_first_regex(location, "(^|,)([^,]*?)$")[,3])
## [1] "New Zealand" "USA" "France"
stri_trim
удаляет ненужные пробелы до / после названия страны.