전체 가이드: r에서 sort(), order() 및 rank()를 사용하는 방법
사람들이 종종 혼동하는 R의 세 가지 기능은 정렬 , 순서 지정 및 순위 지정 입니다.
이러한 기능의 차이점은 다음과 같습니다.
- sort()는 벡터를 오름차순으로 정렬합니다.
- order()는 벡터의 각 요소에 대한 인덱스를 정렬된 순서로 반환합니다.
- Rank() 는 벡터의 각 요소에 순위를 할당합니다(최소 = 1).
다음 예에서는 이러한 각 기능을 실제로 사용하는 방법을 보여줍니다.
예: 벡터에 sort(), order() 및 Rank() 사용
다음 코드는 값이 4개인 벡터와 함께 sort() , order() 및 Rank() 함수를 사용하는 방법을 보여줍니다.
#createvector
x <- c(0, 20, 10, 15)
#sort vector
sort(s)
[1] 0 10 15 20
#order vector
order(s)
[1] 1 3 4 2
#rank vector
rank(x)
[1] 1 4 2 3
각 함수가 수행한 작업은 다음과 같습니다.
1. sort() 함수는 단순히 벡터 값을 오름차순으로 정렬했습니다.
2. order() 함수는 정렬된 순서로 각 요소의 인덱스를 반환합니다.
- 이러한 인덱스 값을 기준으로 원본 벡터 값을 순서대로 넣으면 정렬된 벡터를 얻게 됩니다.
- 예를 들어 order()는 먼저 인덱스 위치 1 에 값을 넣으라고 지시합니다. 원래 벡터에서는 0입니다.
- 그런 다음 order()는 인덱스 위치 3 에 값을 넣으라고 지시합니다. 원래 벡터에서는 10입니다.
- 그런 다음 order()는 인덱스 위치 4 에 값을 넣으라고 지시합니다. 원래 벡터에서는 15입니다.
- 그런 다음 order()는 인덱스 위치 2 에 값을 넣으라고 지시합니다. 원래 벡터에서는 20입니다.
- 최종 결과는 0, 10, 15, 20으로 정렬된 벡터입니다.
3. Rank() 함수는 가장 작은 값에 1을 사용하여 벡터의 각 요소에 순위를 할당했습니다.
- 예를 들어, Rank()는 원래 벡터의 첫 번째 값이 가장 작고(순위 = 1) 원래 벡터의 두 번째 값이 가장 크다(순위 = 4)는 것을 알려줍니다.
sort() , order() 및 Rank() 를 역순으로 사용하려면 다음 구문을 사용할 수 있습니다.
#createvector
x <- c(0, 20, 10, 15)
#sort vector in decreasing order
sort(x, decreasing= TRUE )
[1] 20 15 10 0
#order vector in decreasing order
order(x, decreasing= TRUE )
[1] 2 4 3 1
#rank vector in reverse order (largest value = 1)
rank(-x)
[1] 4 1 3 2
이 결과는 이전 예제에서 생성된 결과와 정반대입니다.
참고: Rank() 함수를 사용하여 동점을 처리하는 방법
Tie.method 인수를 사용하여 Rank() 함수를 사용할 때 동점을 처리하는 방법을 지정할 수 있습니다.
rank(x, ties. method = ' average ')
다음 옵션 중 하나를 사용하여 링크 처리 방법을 지정할 수 있습니다.
- average : (기본값) 연결된 각 항목에 평균 순위를 할당합니다(3위와 4위 항목은 모두 3.5 순위를 받습니다).
- first : 첫 번째로 연결된 요소를 가장 낮은 순위에 할당합니다(3위와 4위 요소는 각각 3위와 4위를 받습니다).
- min : 연결된 각 항목을 가장 낮은 순위에 할당합니다(3위와 4위 항목은 모두 3위를 받습니다).
- max : 연결된 각 항목에 가장 높은 순위를 할당합니다(3위와 4위 항목 모두 순위 4를 받습니다).
- 무작위 : 동률인 각 요소에 무작위 순위를 할당합니다(3위와 4위로 동률인 요소는 두 순위 중 하나를 받을 수 있음).
시나리오에 따라 이러한 방법 중 하나를 사용하는 것이 다른 방법보다 더 적합할 수 있습니다.
추가 리소스
다음 튜토리얼에서는 R에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
R에서 여러 열을 기준으로 정렬하는 방법
R에서 날짜별로 데이터 프레임을 정렬하는 방법
R에서 백분위수 순위를 계산하는 방법