- Window function
- n개의 input을 받아서 n 개의 output을 반환하는 함수.
- 순위(rank)를 구하는 함수나 누적합(cumulative sum)을 구하는 함수가 대표적
- lead(), lag(), dense_rank(), min_rank(), percent_rank(), row_number(), ntile(), between(), cume_dist(), cummean()
- 시계열 자료등을 다룰 때 절대적으로 필요함
- cf. Aggregation function
- n개의 input을 받아서 1개의 output 을 반환.
- 요약통계량의 평균(mean), 합계(sum), 개수 세기(count) 등
- Arguments
- x : a vector of values to rank. Missing values are left as is. If you want to treat them as the smallest or largest values, replace with Inf or -Inf before ranking.
- n : number of groups to split up into.
row_number() : 순위 반환. 동률인 경우는 먼저 있는 값이 작은 순위.
x <- c(5, 1, 3, 2, 2, NA)
row_number(x)
## [1] 5 1 4 2 3 NA
min_rank() : 순위가 동률인 경우에는 더 작은 순위를 지정.
x <- c(5, 1, 3, 2, 2, NA)
min_rank(x)
## [1] 5 1 4 2 2 NA
dense_rank() : ranks with no gaps. 순위를 매길 때에 동률인 경우에는 최소 순위를 적용하고, 그 다음 순위는 최소 순위보다 1증가된 순위를 부여.
x <- c(5, 1, 3, 2, 2, NA)
dense_rank(x)
## [1] 4 1 3 2 2 NA
ntile(x, n) : 벡터를 지정된 그룹수로 분할함
x <- c(5, 1, 3, 2, 2, NA)
ntile(x, n=2)
## [1] 2 1 2 1 1 NA
lead() : 벡터의 값을 왼쪽으로 하나씩 이동
x <- c(5, 1, 3, 2, 2, NA)
lead(x)
## [1] 1 3 2 2 NA NA
lag() : 벡터의 값을 오른쪽으로 하나씩 이동
x <- c(5, 1, 3, 2, 2, NA)
lag(x)
## [1] NA 5 1 3 2 2
percent_rank(벡터) : 순위를 0~1 사이의 값으로 부여함
x <- c(5, 1, 3, 2, 2, NA)
percent_rank(x)
## [1] 1.00 0.00 0.75 0.25 0.25 NA
between(x, left=, right=) : 벡터의 값이 지정된 left와 right 사이에 있으면 TRUE, 그렇지 않으면 FALSE를 반환함
x <- c(5, 1, 3, 2, 2, NA)
between(x, 1, 3)
## [1] FALSE TRUE TRUE TRUE TRUE NA
cume_dist() : 벡터에 대한 누적분포를 알려줌.
x <- c(5, 1, 3, 2, 2, NA)
cume_dist(x)
## [1] 1.0 0.2 0.8 0.6 0.6 NA
cummean() : 누적 평균을 구해줌.
x <- c(5, 1, 3, 2, 2, NA)
cummean(x)
## [1] 5.00 3.00 3.00 2.75 2.60 NA