2017-04-10 75 views

回答

0
x<-"White, Mr. George Voultsios" 
sub(".* ","",sub("\\..*","",x)) 
[1] "Mr" 
0

您可以使用正常表達式來爲空格和向前看點的空間:

## The data:  
x <- c("White, Mr. George Voultsios", "LastName, Mrs. Firstname") 

使用基礎包:

regmatches(x, regexpr("(?<=).*(?=\\.)", x, perl = TRUE)) 
# [1] "Mr" "Mrs" 

使用包stringr

library(stringr) 
stringr::str_extract(x, "(?<=).*(?=\\.)") 
# [1] "Mr" "Mrs" 

什麼圖案(?<=).*(?=\\.)所做的是:

  • 外表爲以下的空間中的位置((?<=)
  • 然後捕獲任何數量的charact ERS(.*
  • ,直到你到後跟一個點的位置((?=\\.)
相關問題