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”

Similar Reads

Calculating Euclidean Distance in R to Get the Distance between Rows

In mathematics, the euclidean distance between any two points is described as the length of the line segments between them, It is also known as the straight line distance. The Euclidean distance between any two-row vectors A and B of the matrix can be given by the following formula,...

Calculating Canberra Distance in R to Get the Distance between Rows

...

Calculating Maximum 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 :...

Calculating binary distance in R to Get the Distance between Rows

...

Calculating Minkowski Distance in R to Get the Distance between Rows

The maximum distance between all the matrix rows, with two rows taken at a time, is always a matrix of integral values indicating the maximum number of rows between any two pairs of input rows. It can be easily calculated by the dist() method by modifying it to specify the method name as “maximum”....