フィールドの下に2列のcsvファイルで、アラインメントとともにパーセントで一致するパターンを取得する方法。 注:記載されている値が正しくない場合があります。しかし、アラインメントパターンがどのくらい正しいことができるかを知りたい。場合列アラインメントパターンの検索
Field1 Field2 % match
aaaa aa 66.667
bbb ab 40
ccc ccd 66.667
ddd ddcv 57.142
フィールドの下に2列のcsvファイルで、アラインメントとともにパーセントで一致するパターンを取得する方法。 注:記載されている値が正しくない場合があります。しかし、アラインメントパターンがどのくらい正しいことができるかを知りたい。場合列アラインメントパターンの検索
Field1 Field2 % match
aaaa aa 66.667
bbb ab 40
ccc ccd 66.667
ddd ddcv 57.142
あなたは、あなたが「レーベンシュタイン距離」や「JARO-ウィンクラーの距離」を使用して計算することができる2つの文字列の間の類似性の割合を知りたいです。
library(dplyr)
#Levenshtein distance
library(RecordLinkage)
df_lv <- df %>%
mutate(per_match = levenshteinSim(Field1, Field2))
df_lv
# Field1 Field2 per_match
#1 aaaa aa 0.5000000
#2 bbb ab 0.3333333
#3 ccc ccd 0.6666667
#4 ddd ddcv 0.5000000
#5 aa aas 0.6666667
#6 aa aba 0.6666667
#Jaro–Winkler distance
library(stringdist)
df_jw <- df %>%
mutate(per_match = stringsim(Field1, Field2, method="jw"))
df_jw
# Field1 Field2 per_match
#1 aaaa aa 0.8333333
#2 bbb ab 0.6111111
#3 ccc ccd 0.7777778
#4 ddd ddcv 0.7222222
#5 aa aas 0.8888889
#6 aa aba 0.6111111
#sample data
> dput(df)
structure(list(Field1 = c("aaaa", "bbb", "ccc", "ddd", "aa",
"aa"), Field2 = c("aa", "ab", "ccd", "ddcv", "aas", "aba")), .Names = c("Field1",
"Field2"), class = "data.frame", row.names = c(NA, -6L))
注:私はあなたがあなたの記事で言及した割合を計算する方法がわかりません。 @Uweはコメントセクションですでに述べたとおり、他の人があなたを助けるために、これらの番号を取得するために使用したアルゴリズムをお知らせください。
私は値を無作為に計算しましたが、私は同じようにするために整列が必要です。 –
私はそれを理解すれば本当にわかりません。 [オリジナル投稿](https://stackoverflow.com/posts/48003035/edit)にパーセント計算アルゴリズムを説明することはできますか? – Prem
私は、例えば、 "aa"と "aa"を比較すると、 "aa"は異なっていて、 "aba"は正しく異なるように、整列に基づいた%計算を望みました。 –
ようこそ! [最小限で完全で検証可能な例を作成する方法についてはこのチュートリアル](https://stackoverflow.com/help/mcve)をご覧になり、必要な出力と既に試したことについて詳しく説明してください。 – Vincent
'%match'を計算するルールはどうですか? – Uwe