R에서 dist 함수를 사용하는 방법(예제 포함)


R의 dist() 함수는 행렬이나 데이터 프레임의 행 사이의 거리를 표시하는 거리 행렬을 계산하는 데 사용할 수 있습니다.

이 함수는 다음 기본 구문을 사용합니다.

dist(x, method=”유클리드”)

금:

  • x: 행렬 또는 데이터 블록의 이름입니다.
  • 방법: 사용할 거리 측정입니다. 기본값은 “Euclidean”이지만 옵션에는 “maximum”, “manhattan”, “canberra”, “binary” 또는 “minkowski”가 포함됩니다.

다음 예에서는 다음 데이터 프레임에서 실제로 이 함수를 사용하는 방법을 보여줍니다.

 #define four vectors
a <- c(2, 4, 4, 6)
b <- c(5, 5, 7, 8)
c <- c(9, 9, 9, 8)
d <- c(1, 2, 3, 3)

#row bind four vectors into matrix
mat <- rbind(a, b, c, d)

#view matrix
mast

  [,1] [,2] [,3] [,4]
a 2 4 4 6
b 5 5 7 8
c 9 9 9 8
d 1 2 3 3

예제 1: dist()를 사용하여 유클리드 거리 계산

두 벡터 A와 B 사이의 유클리드 거리는 다음과 같이 계산됩니다.

유클리드 거리 = √ Σ(A i -B i ) 2

다음 코드는 R에서 행렬의 각 행 사이의 유클리드 거리를 보여주는 거리 행렬을 계산하는 방법을 보여줍니다.

 #calculate Euclidean distance between each row in matrix
dist(mat)

          ABC
b4.795832                    
c 10.148892 6.000000          
d 3.872983 8.124038 13.190906

결과를 해석하는 방법은 다음과 같습니다.

  • 선 a와 선 b 사이의 유클리드 거리는 4.795832 입니다.
  • 선 a와 선 c 사이의 유클리드 거리는 10.148892 입니다.
  • 선 a와 선 d 사이의 유클리드 거리는 3.872983 입니다.
  • 선 b와 선 c 사이의 유클리드 거리는 6.000000 입니다.
  • 선 b와 선 d 사이의 유클리드 거리는 8.124038 입니다.
  • 선 c와 선 d 사이의 유클리드 거리는 13.190906 입니다.

예 2: dist()를 사용하여 최대 거리 계산

두 벡터 A와 B 사이의 최대 거리는 모든 쌍 요소 간의 최대 차이로 계산됩니다.

다음 코드는 R에서 행렬의 각 행 사이의 최대 거리를 표시하는 거리 행렬을 계산하는 방법을 보여줍니다.

 #calculate Maximum distance between each row in matrix
dist(mat, method=" maximum ")

  ABC
b 3    
c 7 4  
d 3 5 8

예제 3: dist()를 사용하여 캔버라로부터의 거리 계산

두 벡터 A와 B 사이의 캔버라 거리는 다음과 같이 계산됩니다.

캔버라에서의 거리 = Σ |A i -B i | / | AI | + | 비제 |

다음 코드는 R에서 행렬의 각 행 사이의 캔버라 거리를 보여주는 거리 행렬을 계산하는 방법을 보여줍니다.

 #calculate Canberra distance between each row in matrix
dist(mat, method=" canberra ")

          ABC
b 0.9552670                    
c 1.5484515 0.6964286          
d 1.1428571 1.9497835 2.3909091

예제 4: dist()를 사용하여 이진 거리 계산

두 벡터 A와 B 사이의 이진 거리는 두 벡터가 공유하는 요소의 비율로 계산됩니다.

다음 코드는 R에서 행렬의 각 행 사이의 이진 거리를 보여주는 거리 행렬을 계산하는 방법을 보여줍니다.

 #calculate Binary distance between each row in matrix
dist(mat, method=" binary ")

  ABC
b 0    
c 0 0  
d 0 0 0

예제 5: dist()를 사용하여 Minkowski 거리 계산

두 벡터 A와 B 사이의 민코프스키 거리는 다음과 같이 계산됩니다.

민코프스키 거리 = (Σ|a i – b i | p ) 1/p

여기서 i 는 각 벡터의 i 번째 요소이고 p 는 정수입니다.

다음 코드는 R에서 행렬의 각 행 사이의 Minkowski 거리(p=3 사용)를 표시하는 거리 행렬을 계산하는 방법을 보여줍니다.

 #calculate Minkowski distance between each row in matrix
dist(mat, method=" minkowski ", p= 3 )

          ABC
b 3.979057                    
c 8.439010 5.142563          
d 3.332222 6.542133 10.614765

추가 리소스

R에서 Jaccard 유사성을 계산하는 방법
R에서 코사인 유사성을 계산하는 방법
R에서 내적을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다