【发布时间】:2017-11-28 19:50:37
【问题描述】:
我正在处理一项需要清除大量杂乱字符串数据的任务。
我已经解决了大多数问题,但遇到了两个问题:
- 使用多个 grepl 语句时的关系
- 我觉得可以简化很多代码,但我不知道如何简化
让我们考虑这个最小的例子:
names 是一个字符向量,存储了 3 个不同的人的名字,写法不同
names 应简化(重新编码),以便以相同方式存储多次出现的人名
让我们假设 Johnatan 是第一约翰,
约翰尼和约翰尼都是第二约翰,
John、John D.、John Doe 是第三约翰。
凭借我有限的R 知识,我得到了这个解决方案:
names <- c("John", "Johnatan", "Johnnie", "John D.", "John Doe", "johnnie")
names[grepl("johna", names, ignore.case = TRUE)] <- "First John"
names[grepl("johnn", names, ignore.case = TRUE)] <- "Second John"
names[grepl("john d*", names, ignore.case = TRUE)] <- "Third John"
此时有john,我不知道如何重新编码为Third John
names[grepl("john", names, ignore.case = TRUE)]
将收集names 中的所有约翰。
问题:
我该如何处理这种关系,希望以某种方式,比我目前所写的更优雅?
感谢您的任何提示和建议。
【问题讨论】: