从模式匹配和替换

2021-06-13 13:15:45 发布

您现在位置:Python中文网/ 问答频道 /正文

对不起,我会记住规则的。说之前的帖子被删除了,所以我不得不再做一次。 两个数据帧xa和ya中的两个字符列。xa比ya更完美,所以希望将ya中的匹配项与xa中的匹配项进行匹配,但返回xa中的匹配项。你知道吗

这是我所拥有的,但它要长得多,而且不是逐行匹配

xa = c("boxes","card","picture","combs".....)
ya= c("comb","paste","crda","boes"......)

这就是我在R所做的

fibon <- 
for (i in ya)
sapply(xa, function(x) { if (
agrepl(ya, x, max.distance=0.1)==TRUE)
fibon <- as.list(return(i))})

这似乎是运行,但永远不会结束 我确实考虑过使用索引,我也尝试过使用agrep索引组件

fibon <- 
sapply(xa, function(x)
m <- agrep(ya, x, max.distance=0.1, value=F) 
fibon <- replace (x, m, ya[m]))

但它从xa返回匹配,而不是从ya返回

谢谢

编辑 另一种看待它的方式是: ya可以是一个查找表,我想用它在ya中的匹配来替换xa中每个近似匹配的元素,即查找表