私は正しい位置名のベクトルに対して明確にしようとしている場所のベクトルを持っています。私はカントーちょうど2つの明確化の場所を使用しています。この例 :1文字の許容値と文字列を一致させる方法は?
agrepl('Au', c("Austin, TX", "Houston, TX"),
max.distance = .000000001,
ignore.case = T, fixed = T)
[1] TRUE TRUE
ヘルプページはmax.distance
が試合に許さ
の最大距離であることを述べています。表現のいずれかの整数として、またはパターン長時間の割合として最大の変換は
私はLevensthein距離の数学的意味についてわからない費用。私の理解は距離が小さいほど、曖昧さのない文字列のベクトルとのミスマッチに対する許容範囲が厳しくなります。
だから私は2つを取得するように調整するでしょうFALSE
?
agrepl('Austn, TX', "Austin, TX",
max.distance = .000000001, ignore.case = T, fixed = T)
[1] TRUE
代わりに 'adist'を試してください。問題は部分一致が発生しているため、 'Au'は' * Au * stin'とすぐに一致します。例えば、 'adist(c(" Au "、" Austin、TX ")、c(" Austin、TX "、" Houston、TX ")、partial = FALSE)' – thelatemail
'max.distance'を整数それは、比率の代わりに許される変更の数としてそれを使用します。また、特定のタイプの変更に対して名前付きの制限リストを渡すこともできます。 (コスト= 1、挿入数= 0、削除数= 1、置換数= 0)、ignore.case = T(コストは1、挿入数は0、 、fixed = T) 'である。詳細は '?agrep'を参照してください。 – alistaire
@thelatemailありがとう、私は最小の差で文字列をつかむ関数を書くか、またはカスタムのしきい値に基づいて距離ではなく値を取得する特定の方法はありますか? @ alistaireそれは私が思ったことですが、もしあなたが "Au"が "Austin、TX"とマッチしているのを見たら、私は望みません。 – Dambo