Cómo calcular la distancia euclidiana en R (con ejemplos)

La distancia euclidiana entre dos vectores, A y B, se calcula como:

Distancia euclidiana = √ Σ (A i -B i ) 2

Para calcular la distancia euclidiana entre dos vectores en R, podemos definir la siguiente función:

euclidiana <- función (a, b) sqrt ( suma ((a - b) ^ 2))

Luego podemos usar esta función para encontrar la distancia euclidiana entre dos vectores cualesquiera:

#define dos vectores
a <- c (2, 6, 7, 7, 5, 13, 14, 17, 11, 8)
b <- c (3, 5, 5, 3, 7, 12, 13, 19, 22, 7)

#calcular la distancia euclidiana entre vectores
euclidiana (a, b)

[1] 12.40967

La distancia euclidiana entre los dos vectores resulta ser 12.40967 .

Tenga en cuenta que también podemos usar esta función para calcular la distancia euclidiana entre dos columnas de un marco de datos:

#define marco de datos
df <- data.frame (a = c (3, 4, 4, 6, 7, 14, 15),
                 b = c (4, 8, 8, 9, 14, 13, 7),
                 c = c (7, 7, 8, 5, 15, 11, 8),
                 d = c (9, 6, 6, 7, 6, 15, 19))

distancia euclidiana #calculate entre las columnas una y d
euclidiana (df $ a, df $ d)

[1] 7,937254

Tenga en cuenta que esta función producirá un mensaje de advertencia si los dos vectores no tienen la misma longitud:

#define dos vectores de longitud desigual
a <- c (2, 6, 7, 7, 5, 13, 14)
b <- c (3, 5, 5, 3, 7, 12, 13, 19, 22, 7)

#intento de calcular la distancia euclidiana entre vectores
euclidiana (a, b)

[1] 23,93742
Mensaje de advertencia:
En a - b: la longitud del objeto más larga no es un múltiplo de la longitud del objeto más corta

Puede consultar esta página de Wikipedia para obtener más detalles sobre la distancia euclidiana.

  • https://r-project.org
  • https://www.python.org/
  • https://www.stata.com/

Deja un comentario

La prueba de rango con signo de Wilcoxon es la versión no paramétrica de la prueba t pareada . Se…
statologos comunidad-2

Compartimos información EXCLUSIVA y GRATUITA solo para suscriptores (cursos privados, programas, consejos y mucho más)

You have Successfully Subscribed!