반응형
아래와 같이 5개의 점이 있다고 합시다.
P1=c(1,2,3)
P2=c(3,5,2)
P3=c(5,5,4)
P4=c(1,4,7)
P5=c(2,2,4)
이들 중 어느 두 점이 가장 가까운 거리에 있는지 알고 싶은 상황입니다. 유클리드 거리를 행렬 형태로 출력해주는 함수가 있습니다. dist 함수입니다. 먼저 위 점들을 하나의 행렬로 묶어줍니다.
mat1=matrix(c(P1,P2,P3,P4,P5),byrow=TRUE,nrow=5)
> mat1
[,1] [,2] [,3]
[1,] 1 2 3
[2,] 3 5 2
[3,] 5 5 4
[4,] 1 4 7
[5,] 2 2 4
위에서 만든 행렬에 dist 함수를 적용해봅시다.
> dist(mat1)
1 2 3 4
2 3.741657
3 5.099020 2.828427
4 4.472136 5.477226 5.099020
5 1.414214 3.741657 4.242641 3.741657
P1와 P5 의 사이가 가장 가깝다는 것을 알 수 있습니다. 1과 5가 만나는 위치의 1.414 라는 값이 P1과 P5의 거리입니다.
대각선 값과 위쪽 삼각형 값을 나오게 하고 싶다면, diag 과 upper 옵션을 TRUE로 설정해주면 됩니다.
> dist(mat1,diag=TRUE,upper=TRUE)
1 2 3 4 5
1 0.000000 3.741657 5.099020 4.472136 1.414214
2 3.741657 0.000000 2.828427 5.477226 3.741657
3 5.099020 2.828427 0.000000 5.099020 4.242641
4 4.472136 5.477226 5.099020 0.000000 3.741657
5 1.414214 3.741657 4.242641 3.741657 0.000000
#강의영상
반응형
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 134. 데이터프레임 열이름이 다른 경우 rbind 적용하기 (0) | 2023.01.25 |
---|---|
[R강의] 133. 데이터프레임을 행으로 결합하기 (rbind) (0) | 2023.01.24 |
[R강의] 131. 연속형 변수를 구간에 따라 범주형 변수로 바꾸는 방법 (0) | 2022.12.23 |
[R강의] 130. 데이터프레임 열 인덱싱 결과는 두 가지 입니다. (0) | 2022.04.02 |
[R강의] 129. 분할표 만들기 (빈도, 비율) (0) | 2021.12.31 |
댓글