Calculating Canberra Distance in R to Get the Distance between Rows
The Canberra distance between any two pairwise elements of the specified rows of the matrix can be given by the following equation :
∑ |vect1i - vect2i| / (|vect1i| + |vect2i|)
The dist() method can be customized by specifying the method name equivalent to “Canberra”. The result is the matrix with a row less than the input data frame and cell values indicating the distance between the rows.
Syntax: dist(vect, method = “canberra”, diag = TRUE or FALSE, upper = TRUE or FALSE)
R
# Creating matrix matr <- matrix (1:12, nrow = 4) print ( "Original Matrix" ) print (matr) # Calculating the distance # between rows of matrix print ( "Canberra Distance between rows of matrix" ) dist (matr,method= "canberra" ) |
Output:
[,1] [,2] [,3] [1,] 1 5 9 [2,] 2 6 10 [3,] 3 7 11 [4,] 4 8 12 [1] "Canberra Distance between rows of matrix" 1 2 3 2 0.4768740 3 0.7666667 0.3245421 4 0.9736264 0.5670996 0.2530021
Distance Between Rows in R
In this article, we will learn various approaches to calculating the distance between the given rows in the R programming language.
The dist() function in R is used to calculate a wide range of distances between the specified vector elements of the matrix in R. The default method for distance computation is the “Euclidean distance,” which is widely used in mathematics. It has the following syntax :
Syntax: dist(vect, method = ” “, diag = TRUE or FALSE, upper = TRUE or FALSE)
Parameters:
- vect: A two-dimensional vector
- method: The distance to be measured. It must be equal to one of these, “euclidean”, “maximum”, “manhattan”, “canberra”, “binary” or “minkowski”
- diag: logical value (TRUE or FALSE) that conveys whether the diagonal of the distance matrix should be printed by print.dist or not.
- upper: logical value (TRUE or FALSE) that conveys whether the upper triangle of the distance matrix should be printed by print.dist or not.
Return type:
It return an object of class “dist”