我有两个矩阵 A 和 B。两者都包含一个名称列表。问题基于相似性度量。我找到 A 的元素与 B(整个矩阵)的最小距离。如果汉明距离大于 3,然后将数据添加到矩阵 B 中,否则不添加。所以让我给你举个例子
A<-c("cvombiflam","combiflam")
A<-as.matrix(A)
B<-c("windfall","computer","baseball")
B<-as.matrix(B)
现在 A1 将搜索 B 并找到 B 中关于汉明距离最近的成员。最近的是 B2。它将找到与 B[2] 的距离。由于最近距离大于 3,因此 cvomiflam 将添加到 B。现在 B 将是
B<-c("windfall",
"computer",
"baseball",
"cvombiflam")
现在 A("combiflam") 的第二个元素将搜索 B。最接近的是 B 的第四个元素 (cvombiflam ),距离为 1。因此 combiflam 不会添加到 B 中。我想更新最终的 B 列表
我写的代码是:
for(i in 1:length(A))
{
d<-min(stringdistmatrix(A[i],B)
if(d>3)
{
B<-rbind(B,A[i])
}
}
现在我有一个大约 140,000 的矩阵和 200,000 的 B。代码运行良好,但运行需要很长时间。请告诉我一个更快的方法来做到这一点。