我有一个带有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 –