2017-07-23 104 views
-1

我有一個區分男性和女性名字的代碼grepl()。下面的代碼給出,它的工作原理,但我無法理解它是如何工作的。瞭解R中的這個grepl()函數的工作原理

name = c("Braund, Mr. Owen Harris", 
     "Cumings, Mrs. John Bradley (Florence Briggs Thayer)") 

grepl("\\(.*?\\)", name) 
# [1] FALSE TRUE 
+0

我的意思是......他們都不會重複嗎?只要標記他們所有的dups .. – sln

回答

0

匹配是基於(,零個或多個字符(.*)跟隨它並隨後閉合))的存在。在這裏,它假定女性的名字有大括號。我們也可以匹配基礎上,Mrs.

grepl("\\bMrs\\.", name) 
#[1] FALSE TRUE 
0

你的代碼,男性和女性的名字之間沒有區別。

"\\(.*?\\)"regular expression。它是用於names符合具有開口托架(,隨後的字符數,然後閉合托架)的元素搜索在大文本模式(如CTRL + F

grepl("\\(.*?\\)", name)搜索的強有力的方法。

所以這個正則表達式不是區分男性和女性的名字,它區分(.. something something ..)元素和沒有這種模式的元素。

相關問題