我在R中有一个文件名列表。我必须聚类类似的文件名。为此,我使用stringdistmatrix来查找每个字符串之间的距离。我有字符串距离,但我很难将它们分成簇。到目前为止,我的方法相当简单,我使用2 for循环来遍历整个字符串距离矩阵。因此,对于小于5的每个距离,我将其列名放在列表中,并将行的其余部分的距离设置为NA。当我在for循环中执行此操作时,运行一次需要将近15分钟。有没有更快的方法呢? 这就是我到目前为止所做的事情:
kpm <- stringdistmatrix(unique(dat1$name),useNames="strings",method="lv")
kpm <- data.matrix(as.matrix(kpm))
i<-1
j<-1
v<-1
vec<-list()
l<-1
lt<-NULL
while(i<=nrow(kpm)){
l<-1
j<-1
while(j<=ncol(kpm)){
if(kpm[j][1]>=0 & kpm[j][1]<=8){
lt[l]<-colnames(kpm)[j]
l<-l+1
kpm[j][]<-NA
}
j<-j+1
}
i<-i+1
if(length(lt)>1){
vec[[v]]<-lt
lt<-NULL
v<-v+1
}
}