我有一個帶有ID(其中一些是用戶名,其中一些是電子郵件地址)的記錄列表。我想知道有多少電子郵件地址。我想一個簡單的方法來做到這一點將計數有多少行包含@符號,但我不能得到一個函數來執行此操作。任何幫助表示讚賞!R - 計數行數w/@符號
樣本數據集:
x <- c("[email protected]", "johnnyApple", "[email protected]")
我有一個帶有ID(其中一些是用戶名,其中一些是電子郵件地址)的記錄列表。我想知道有多少電子郵件地址。我想一個簡單的方法來做到這一點將計數有多少行包含@符號,但我不能得到一個函數來執行此操作。任何幫助表示讚賞!R - 計數行數w/@符號
樣本數據集:
x <- c("[email protected]", "johnnyApple", "[email protected]")
兩個答案至今是完全正確的,但如果你我們正在尋找一個電子郵件地址,不太可能出現誤報的方法是:
x <- c("[email protected]", "johnnyApple", "[email protected]")
sum(regexpr(".*@.*\\..*",x) != -1)
你甚至可以走的更遠,需要」 .COM 「,」.edu「等,儘管這樣你就有冒犯的風險。 –
好的想法...雖然更像'sum(regexpr(「。* @。* \\ .. *」,x)!= -1)'可能與OP的期望輸出相匹配。類似的方法可以是sum(sub(「。*(@)。* \\ .. *」,「\\ 1」,x)==「@」)' –
嘗試:
x <- c("[email protected]", "johnnyApple", "[email protected]")
sum(grepl("@", x))
假設你的數據是df
,你可以嘗試
length(grep(pattern="@", df$V1))
[1] 2
參見http://stackoverflow.com/questions/19341554/regular-expression-in-base-r-regex-to-identify-email-address –