일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- sample_n()
- arrange()
- summarize()
- groupe_by()
- filter()
- select()
- distinct()
- mutate()
- dplyr
- AES
- 대칭형 알고리즘
- samp;e_frac()
- proc contents
- Today
- Total
Gae Ko's Blog
[R] 정렬하기 본문
▶ 특정 기준에 따라서 정렬하는 방법
SAS에서는 데이터셋을 특정 기준으로 merge()하기 전에 정렬 sort 를 실행한다.
R에서는 merge할 때 사전에 sort해 줄 필요 없음. (merge는 데이터셋을 병합해주는 함수)
R에서 데이터 정렬을 위한 대표적인 함수로 sort() 와 order() 함수가 있다.
sort()는 정렬된 값을 순서대로 보여주는 반면에, order()는 데이터 크기의 인덱스 값을 제공한다.
(1) 숫자 자체 정렬 sort()
sort()의 디폴트 정렬순은 오름차순.
내림차순으로 하려면 decreasing = TRUE 라는 옵션을 추가한다.
데이터프레임에서는 사용할 수 없음. 그래서 백터 정렬시에 사용.
(2) 정렬 인덱스 값 order()
R에서의 인덱스는 1부터 시작한다.
order()함수의 결과는 작은 순서대로 인덱스를 매겨서 그 값을 보여준다.
> v1 <- c(40, 30, 50, 50, 90, 40, 50) > v1 [1] 40 30 50 50 90 40 50 > order(v1) [1] 2 1 6 3 4 7 5 > v1[order(v1)] [1] 30 40 40 50 50 50 90 |
그래서 v1[order(v1)] 하면 sort(v1)과 동일한 결과를 얻을 수 있다.
사용 목적과 결과는 같지만 아까도 말했듯이, sort()는 데이터 프레임에서 사용할 수 없지만 order()는 데이터 프레임에서 사용된다.
> v123 v1 v2 v3 1 40 5100 A 2 30 6500 B 3 50 2000 A 4 50 2000 B 5 90 9000 A 6 40 4500 A 7 50 3000 B > > # v123 데이터 프레임의 전체 행을 v1 오름차순, v2 내림차순, v3 오름차순의 순서대로 정렬 > v123_order <- v123[order(v1, -v2, v3),] > v123_order v1 v2 v3 2 30 6500 B 1 40 5100 A 6 40 4500 A 7 50 3000 B 3 50 2000 A 4 50 2000 B 5 90 9000 A |
인덱스 순서대로 불러왔다고 보면 이해하기 쉽다.
(3) dplyr의 arrange()
dplyr패키지의 arrange()함수를 사용하는 방법도 있다.
arrange()는 행(관측치)를 변수의 오름차순으로 정렬한다.
내림차순으로 정렬하고자하는 경우에는 desc()옵션을 추가해주면 된다.
// arrange(DATAFRAME_NAME, VAR1, desc(VAR2), ... )
> # dplyr패키지 로드 > library(dplyr) 다음의 패키지를 부착합니다: ‘dplyr’ The following objects are masked from ‘package:stats’: filter, lag The following objects are masked from ‘package:base’: intersect, setdiff, setequal, union > arrange(v123, v1, desc(v2), v3) v1 v2 v3 1 30 6500 B 2 40 5100 A 3 40 4500 A 4 50 3000 B 5 50 2000 A 6 50 2000 B 7 90 9000 A > |
'통계 > R' 카테고리의 다른 글
[Data Science] R의 dplyr 패키지 (0) | 2018.02.19 |
---|---|
[R] apply() 함수 (0) | 2018.02.16 |
[R] 데이터타입 (0) | 2018.02.02 |
[Rstudio] 단축키 (0) | 2018.01.18 |
[R] data frame 결합 (0) | 2017.10.08 |