1

「データ」ベクトル内のわずかに異なる多数のレストラン名を適切な「一致」ベクトルに一致させます。

パッケージ内のstringdistmatrix機能stringdistは優れていますが、数 10k x 10k のメモリが不足し、データが大きくなっています。

試してみるas(stringdistmatrix(data, match),'sparseMatrix')と結果が期待できますが、メモリが不足しています。したがって、ペアがメモリに収まることを期待して、計算された文字列距離または同様の文字列距離を使用sparseMatrix(i,j,x,dims,dimnames)して、ペアに明示的にインデックスを付けたいと思います。xadist()

R

data <- c("McDonalds", "MacDonalds", "Mc Donald's", "Wendy's", "Wendys", "Wendy", 
          "Chipotle", "Chipotle's")

match <- c("McDonalds", "Wendys", "Chipotle")

しようとしている:

library(Matrix)
library(stringdist)

idx <- expand.grid(a=data,b=match)
idx$row <- match(idx$a,idx$b)
idx$col <- match(idx$b,idx$a)

library(Matrix)
sparseMatrix(i=idx$row, 
             j=idx$col,
             x=ifthen(adist(data,match)<2,1,0),
             dims=c(7,3),
             dimnames = list(data, match))

出力が一致することを期待:

library(stringdist)
as(ifelse(stringdistmatrix(data,match)<2,1,0),'sparseMatrix')
4

1 に答える 1