r - R中两列之间的部分字符串匹配
问题描述
我正在尝试验证列表的电子邮件是否正确。我在想我可以在电子邮件和名称列之间进行部分字符串匹配,并在新列中返回一个逻辑向量 (TRUE/FALSE)。
在下面的示例中,只有第 3 行和第 5 行有正确的电子邮件,并且这些行的输出将为“TRUE”。我尝试了以下方法,但没有奏效:
>for (i in Test$LastName) {
Test$Match <- agrepl(i, Test$Email, ignore.case = TRUE)
}
>Test$Email %in% Test$LastName
也欢迎任何其他建议。谢谢!
解决方案
基本 R 选项是使用grepl
+mapply
Test <- within(Test, Match <- mapply(grepl,paste(FirstNmae,LastName,sep = "|"),Email,ignore.case = TRUE))
这样
> Test
FirstNmae LastName Email Match
1 Audrey Low T.Rose@gmail.com FALSE
2 Tammy Rose A.Low@gmail.com FALSE
3 Stacey Lock stacy.lock@gmail.com TRUE
4 Judson Porter beth.mccormick@gmail.com FALSE
5 Kellie Sims k.sims@gmail.com TRUE
数据
Test <- data.frame(FirstNmae = c("Audrey","Tammy","Stacey","Judson","Kellie"),
LastName = c("Low","Rose","Lock","Porter","Sims"),
Email = c("T.Rose@gmail.com","A.Low@gmail.com","stacy.lock@gmail.com","beth.mccormick@gmail.com","k.sims@gmail.com"))
推荐阅读
- android - 如何编写房间数据库适配器来包装结果类型
- firebase - 流初始状态是 ConnectionState.waiting 而不是 null
- angular - TypeScript/Angular:尝试将两个数组连接在一起时出现 TypeError
- c# - PeopleAPI 错误 403 Google 错误与否
- html - 一般兄弟姐妹在悬停时不起作用
- javascript - 如何使用 Google Drive Javascript API 更新 Google Drive 中的 zip 文件
- python - 如果预测的类标签是列表列表并且真实值是列表,则混淆矩阵
- r - 在R中按冬季而不是年份分组月份
- javascript - Discord.js 审核日志
- phpstorm - 如何只从远程服务器下载特定文件而不是整个项目?