Comment calculer la distance de Hamming dans R (avec exemples)



La distance de Hamming entre deux vecteurs est simplement la somme des éléments correspondants qui diffèrent entre les vecteurs.

Par exemple, supposons que nous ayons les deux vecteurs suivants :

x = [1, 2, 3, 4]

y = [1, 2, 5, 7]

La distance de Hamming entre les deux vecteurs serait 2 , puisqu’il s’agit du nombre total d’éléments correspondants qui ont des valeurs différentes.

Pour calculer la distance de Hamming entre deux vecteurs dans R, on peut utiliser la syntaxe suivante :

sum(x != y)

Ce tutoriel fournit plusieurs exemples d’utilisation pratique de cette fonction.

Exemple 1 : Distance de Hamming entre les vecteurs binaires

Le code suivant montre comment calculer la distance de Hamming entre deux vecteurs contenant chacun seulement deux valeurs possibles :

#create vectors
x <- c(0, 0, 1, 1, 1)
y <- c(0, 1, 1, 1, 0)

#find Hamming distance between vectors
sum(x != y)

[1] 2

La distance de Hamming entre les deux vecteurs est de 2 .

Exemple 2 : Distance de Hamming entre des vecteurs numériques

Le code suivant montre comment calculer la distance de Hamming entre deux vecteurs contenant chacun plusieurs valeurs numériques :

#create vectors
x <- c(7, 12, 14, 19, 22)
y <- c(7, 12, 16, 26, 27)

#find Hamming distance between vectors
sum(x != y)

[1] 3

La distance de Hamming entre les deux vecteurs est de 3 .

Exemple 3 : Distance de Hamming entre les vecteurs de chaînes

Le code suivant montre comment calculer la distance de Hamming entre deux vecteurs contenant chacun plusieurs valeurs de caractères :

#create vectors
x <- c('a', 'b', 'c', 'd')
y <- c('a', 'b', 'c', 'r')

#find Hamming distance between vectors
sum(x != y)

[1] 3

La distance de Hamming entre les deux vecteurs est de 1 .

Ressources additionnelles

Comment calculer la distance euclidienne dans R
Comment calculer la distance de Manhattan en R
Comment calculer la distance de Minkowski en R
Comment calculer la distance de Mahalanobis en R

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *