티스토리 뷰
데이터를 분석하다 보면, 데이터 정렬을 자주 해야합니다. 그럴때 R에서는 order(), sort() 기능을 이용해 간편하게 오름차순과 내림차순으로 데이터를 정렬할 수 있는데요 이 두 기능이 가져오는 결과는 조금 다릅니다.
우선 데이터 셋을 만들어줍니다.
> v1 <- c("Apple", "Orange", "Apple", "Orange", "Apple", "Orange", "Apple")
> v2 <- c(1, 2, 3, 3, 2, 1, 1)
> v3 <- c(1000, 2000, 2000, 1000, 3000, 3000, 2000)
> v123 <- data.frame(v1, v2, v3)
> v123
v1 v2 v3
1 Apple 1 1000
2 Orange 2 2000
3 Apple 3 2000
4 Orange 3 1000
5 Apple 2 3000
6 Orange 1 3000
7 Apple 1 2000
과일별 갯수와 가격을 나타내는 데이터를 이용해 가격을 정렬해서 가격이 어떻게 분포하는지를 확인하려 한다면 sort()를 사용해보자.
# sort( )
sort(x, decreasing = F) 를 이용해서 간단하게 가격을 오름차순 정렬해볼 수 있습니다.
> sort(v3)
[1] 1000 1000 2000 2000 2000 3000 3000
> sort(v3, decreasing = T)
[1] 3000 3000 2000 2000 2000 1000 1000
숫자는 오름차순을 기본으로 실행이 되며(decreasing = F), 반대로 내림차순을 할 수도 있습니다(decreasing = T).
하지만 실제로 분석을 하면 sort() 보다는 order()를 사용할 일이 대부분인데 그 이유는 결과값의 차이에 있습니다.
# order( )
> order(v3)
[1] 1 4 2 3 7 5 6
> order(-v3)
[1] 5 6 2 3 7 1 4
결과값이 어떻게 다른지 눈치 채셨나요? order()는 결과값으로 index number를 뱉어줍니다. 그리고 decreasing 옵션을 넣는 방법도 '-'를 넣어주는것으로 더욱 직관적입니다. 그래서 데이터 테이블의 정렬에 유용합니다.
# order( )를 이용해 데이터 테이블 정렬
> v123[order(v123$v2),]
v1 v2 v3
1 Apple 1 1000
6 Orange 1 3000
7 Apple 1 2000
2 Orange 2 2000
5 Apple 2 3000
3 Apple 3 2000
4 Orange 3 1000
> v123[order(v123$v2, -v123$v3),]
v1 v2 v3
6 Orange 1 3000
7 Apple 1 2000
1 Apple 1 1000
5 Apple 2 3000
2 Orange 2 2000
3 Apple 3 2000
4 Orange 3 1000
R에서 데이터를 정렬해야할때는 order()를 사용해주세요.
'R' 카테고리의 다른 글
R | 꼭 알아야할 RStudio기능, 스크립트 빠르게 수정하기, (Crtl + F) (1) | 2020.01.15 |
---|---|
R | empty vector로 인한 for loop 반복문 문제해결, 필수! (0) | 2020.01.08 |
R | 알아두면 좋은 Rstudio 기능, 잘 정리된 스크립트를 짜는 방법, Crtl+Shift+R (0) | 2020.01.06 |
R | 반복 샘플 이름 리스트 만들기, seq() rep() paste() (0) | 2020.01.03 |
R | 빈파일, 빈 디렉토리 만들기(한번에 여러개의 디렉토리 만들기) (0) | 2020.01.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 숫자
- RStudio
- for loop
- data
- SEQ
- 엑셀
- Coding
- 코로나바이러스
- 데이터
- format
- comma
- visualizing
- geom_bar
- r
- plot
- 파이썬
- hist
- Command
- Order
- geom_line
- BIOINFORMATICS
- Heatmap
- covid
- Visualization
- 팟빵
- Python
- coronavirus
- Cast
- 2진수
- Excel
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함