作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我发现了出色的“stringdist”包,现在想用它来计算字符串距离。特别是我有一组单词,我想打印出近场比赛,其中“近场比赛”是通过诸如Levenshtein距离之类的算法进行的。
我在Shell脚本中有非常慢的工作代码,并且能够加载stringdist并生成带有度量的矩阵。现在我想将该矩阵归结为一个较小的矩阵,该矩阵仅具有近似匹配项,例如指标非零但小于某个阈值。
kp <- c('leaflet','leafletr','lego','levenshtein-distance','logo')
kpm <- stringdistmatrix(kp,useNames="strings",method="lv")
> kpm
leaflet leafletr lego levenshtein-distance
leafletr 1
lego 5 6
levenshtein-distance 16 16 18
logo 6 7 1 19
m = as.matrix(kpm)
close = apply(m, 1, function(x) x>0 & x<5)
> close
leaflet leafletr lego levenshtein-distance logo
leaflet FALSE TRUE FALSE FALSE FALSE
leafletr TRUE FALSE FALSE FALSE FALSE
lego FALSE FALSE FALSE FALSE TRUE
levenshtein-distance FALSE FALSE FALSE FALSE FALSE
logo FALSE FALSE TRUE FALSE FALSE
leafletr,leaflet,1
logo,lego,1
最佳答案
你可以这样做:
library(reshape2)
d <- unique(melt(m))
out <- subset(d, value > 0 & value < 5)
melt
将
m
转换为长格式(2列带有字符串名称,1列带有值)。但是,由于我们已经融化了对称矩阵,因此我们使用
unique
进行重复数据删除。
dplyr
(因为所有酷 child 现在都在管道中使用
dplyr
):
library(dlpyr)
library(reshape2)
library(magrittr)
out <- melt(m) %>% distinct() %>% filter(value > 0 & value < 5)
关于R:生成具有stringdist和stringdistmatrix的近匹配项列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31486913/
我是一名优秀的程序员,十分优秀!