2015-05-04 45 views
3

我有一個帶有ID(其中一些是用戶名,其中一些是電子郵件地址)的記錄列表。我想知道有多少電子郵件地址。我想一個簡單的方法來做到這一點將計數有多少行包含@符號,但我不能得到一個函數來執行此操作。任何幫助表示讚賞!R - 計數行數w/@符號

樣本數據集:

x <- c("[email protected]", "johnnyApple", "[email protected]") 
+0

參見http://stackoverflow.com/questions/19341554/regular-expression-in-base-r-regex-to-identify-email-address –

回答

6

兩個答案至今是完全正確的,但如果你我們正在尋找一個電子郵件地址,不太可能出現誤報的方法是:

x <- c("[email protected]", "johnnyApple", "[email protected]") 
sum(regexpr(".*@.*\\..*",x) != -1) 
+0

你甚至可以走的更遠,需要」 .COM 「,」.edu「等,儘管這樣你就有冒犯的風險。 –

+1

好的想法...雖然更像'sum(regexpr(「。* @。* \\ .. *」,x)!= -1)'可能與OP的期望輸出相匹配。類似的方法可以是sum(sub(「。*(@)。* \\ .. *」,「\\ 1」,x)==「@」)' –

1

假設你的數據是df,你可以嘗試

length(grep(pattern="@", df$V1)) 
[1] 2