반응형
데이터프레임을 오름차순 또는 내림차순으로 정렬할 때는 order 라는 함수가 사용됩니다. 먼저 order 함수를 이해해봅시다.
1. order 함수와 벡터의 오름차순,내림차순 정렬
아래와 같이 벡터를 두개 정의합시다.
v1=c(1,2,1,3,2)
v2=c(20,10,10,10,30)
v1에 order 함수를 적용해봅시다.
> order(v1)
[1] 1 3 2 5 4
v1을 오름차순 정렬 했을 때, 각 원소가 몇번 째 오게 되는지를 반환합니다. 만약 order(v1)의 결과를 아래와 같이 인덱스로 사용한다면, 오름차순으로 정렬하는 효과를 얻습니다.
> v1[order(v1)]
[1] 1 1 2 2 3
내림차순 정렬은 아래와 같이 하면 됩니다.
> v1[order(v1,decreasing=TRUE)]
[1] 3 2 2 1 1
이 원리를 데이터프레임에도 적용하면 됩니다.
2. 데이터프레임의 오름차순,내림차순 정렬
아래와 같이 데이터프레임을 하나 만들어줍시다.
v1=c(1,2,1,3,2)
v2=c(20,10,10,10,30)
df=data.frame(v1,v2)
> df
v1 v2
1 1 20
2 2 10
3 1 10
4 3 10
5 2 30
v1을 기준으로 오름차순 정렬하는 방법은 아래와 같습니다. 행의 순서를 바꾸는 것이므로 인덱싱 대괄호의 행의 자리에 order 함수 결과를 넣어줍니다.
> df[order(v1),]
v1 v2
1 1 20
3 1 10
2 2 10
5 2 30
4 3 10
만약 v1을 기준으로 오름차순 정렬한 상태에서, v2를 기준으로도 오름차순 정렬하고 싶다면 아래와 같이 하면 됩니다.
> df[order(v1,v2),]
v1 v2
3 1 10
1 1 20
2 2 10
5 2 30
4 3 10
반응형
'R 주제 > R 기초 및 통계 강의' 카테고리의 다른 글
[R강의] 164. 데이터프레임의 결측치 위치를 알려주는 함수 만들어보기 (0) | 2023.08.29 |
---|---|
[R강의] 163. 벡터 결측치의 위치를 알려주는 함수 만들기 (0) | 2023.08.29 |
[R강의] 161. 데이터프레임 행과 열을 제거하는 방법 (0) | 2023.04.26 |
[R강의] 160. 데이터프레임 행의 순서를 바꾸는 방법과 원리 (0) | 2023.04.26 |
[R강의] 159. 벡터 원소를 제거하는 방법 (0) | 2023.04.26 |
댓글