J'ai un vecteur d'emplacements que j'essaie de désambiguïser contre un vecteur de noms d'emplacement corrects. Pour cet exemple, je suis en utilisant seulement deux endroits désambiguïsé THO:Comment faire correspondre une chaîne avec une tolérance d'un caractère?
agrepl('Au', c("Austin, TX", "Houston, TX"),
max.distance = .000000001,
ignore.case = T, fixed = T)
[1] TRUE TRUE
La page d'aide est dit que max.distance
distance maximale autorisée pour un match. Exprimé en entier ou en fraction de la longueur du motif multiplié par le coût maximal de la transformation
Je ne suis pas certain de la signification mathématique de la distance de Levensthein; ma compréhension est que plus la distance est petite, plus la tolérance pour les discordances avec mon vecteur de chaînes désambiguïsées est stricte.
Donc, je voudrais l'ajuster pour récupérer deux FALSE
? En fait, je voudrais avoir une TRUE
seulement quand il y a une différence de 1 caractère comme dans:
agrepl('Austn, TX', "Austin, TX",
max.distance = .000000001, ignore.case = T, fixed = T)
[1] TRUE
Essayez 'adist' à la place. Le problème est que vous avez des correspondances partielles, alors 'Au' correspond immédiatement à' * Au * stin'. Par exemple, 'adist (c (" Au "," Austn, TX "), c (" Austin, TX "," Houston, TX "), partiel = FALSE)' – thelatemail
Si vous passez 'max.distance' un entier , il l'utilise comme le nombre de changements autorisés au lieu de la proportion. Vous pouvez également lui transmettre une liste de limites nommées pour des types particuliers de modifications, par ex. 'agrepl ('Au', c ('Austin, TX', 'Houston, TX'), max.distance = c (coûts = 1, insertions = 0, suppressions = 1, substitutions = 0), ignore.case = T , fixé = T) '. Voir '? Agrep' pour plus d'informations. – alistaire
@thelatemail Merci, dois-je écrire une fonction pour saisir la chaîne avec la plus petite différence ou existe-t-il un moyen spécifique de récupérer les valeurs plutôt que des distances basées sur un seuil personnalisé? @ alistaire C'est ce que je pensais, mais si vous vérifiez, vous verrez que "Au" correspond "Austin, TX", ce que je ne veux pas. – Dambo