r - R部分字符串匹配忽略空格全方位
问题描述
我遇到了部分字符串匹配的问题。我有成对的人,我需要比较他们的名字。为此,我在两个姓氏的两个方向上运行了一个charmatch,以查看 name1 是否是 name2 的一部分,反之亦然。我在下面有一个小数据集来演示这个问题。我在下面使用charmatch;我也使用过 pmatch 并且它返回相同的结果。
当charmatch 说为其第一个参数的元素在其第二个参数中寻找匹配时... 但这显然不是正在发生的事情,它看起来是特定于方向的。
那么......它是特定方向的吗?如果是这样……我还能用什么来做我所描述的事情?我的 EG 名称是双关语,实际上我遇到的是很多姓氏,其中丈夫有他的名字,妻子有她的 + 丈夫。我需要能够查看丈夫姓氏是否存在于妻子姓氏中。
我知道它可以用正则表达式来完成,但我不熟悉它们,可能应该是,但不是,所以我更喜欢不使用正则表达式的答案。
eg_data <- data.frame(name1 = c('Jimmy Conway', 'Jimmy'),
name2 = c('Conway','Jimmy Conway'))
eg_data$share_name1 <- mapply(charmatch, eg_data$name1, eg_data$name2)
eg_data$share_name2 <- mapply(charmatch, eg_data$name2, eg_data$name1)
eg_data$share_name <- 0
eg_data$share_name [(eg_data$share_name1==1 | eg_data$share_name2==1)]
<- 1
解决方案
这可能很有用
> with(eg_data, intersect(name1, name2))
[1] "Jimmy Conway"
推荐阅读
- dart - 如何在 ArrayCouples 的飞镖中创建一个函数
- excel - 使用 VBA 求和并拖动公式
- php - 根据属性名称将 Eloquent 集合拆分为多个数组
- python - 在 pandas 的三列中选择具有匹配值的行
- swift - Swift:从磁盘缓存 int
- apollo - 在第二个阿波罗客户端 useQuery 调用后数据未刷新
- reactjs - 使用对象数组显示 FlatList
- node.js - 如何从给定的 url 下载文件到带有库的缓冲区?
- javascript - Euler 20 阶乘数字和项目
- dynamics-crm - 使用 CrmServiceClient 的 CreateNewActivityEntry 创建 Activity