1
我有2个矢量,其被从regex
各种应用中产生特定的模式:递归匹配并使用AGREP替换字符串到向量元素()
> v1 <- c('abc', 'efg', 'hijk', 'mno')
> v2 <- c('abcde', 'ijklm')
我想在v2中的字符串匹配V1用agrep()
,
> agrep(v2[1], v1, max.distance = 2)
[1] 1
> agrep(v2[2], v1, max.distance = 2)
[1] 3
使得最接近V2在V1中的元件可以通过v2的代替,以得到以下矢量:
> rslt <- c('abcde', 'efg', 'ijklm', 'mno')
[1] "abcde" "efg" "ijklm" "mno"
我可能需要一个函数来更改max.distance
数字,以便找到最接近的匹配项。
你也可以做'agrep(x,v2,value = TRUE)'而不是'v2' – Sotos
看起来确实是一个更清洁的解决方案,相应地修改了答案。 – Florian
这段代码的功能部分是如何工作的? – Sati