안녕하세요. 우주신입니다.
이번 포스팅에서는 누적과 관련된 함수에 대해 정리해보겠습니다.
cumsum(), cumprod(), cummax(), cummin()
익숙해지시면 유용하게 사용되는 무척 간단한 함수들 입니다.
1. 누적 합 (Cumulative Sum)
1부터 10까지 값을 벡터 a에 넣었습니다.
모두가 아는 함수로 sum()을 통해 a의 구성값들 합을 구했습니다.
그러나, 여기서 각 누적 합을 나타내려면 어떻게 해야할까요?
흔히들 while(), for() 등 반복문 함수를 통해 표현하려 시도하겠지만,
cumsum() 함수 하나면 다 해결됩니다. (결과 값은 다른 형태로 표시 됩니다)
데이터프레임으로 응용해보겠습니다.
벡터 b, c를 만든 후, 데이터프레임 df를 생성했습니다.
b의 누적 합을 cumsum(df$b)을 통해 구한 후, 이를 데이터프레임의 새로운 변수로 추가해봤습니다.
2. 누적 곱 (Cumulative Products)
누적 곱을 for문을 통해 나타내봤습니다.
이 또한 cumprod() 한줄로 깔끔하게 완성!
3. 누적 최대값, 최소값(Cumulative Max, Min)
cummax(), cummin()을 통해 누적 최대값, 최소값도 아주 쉽게 구할 수 있습니다.
-cummax(): 맨 처음 값을 출력하고 그 다음 값과 비교 후, 그 값이 더 크다면 그 값을 출력
-cummin((): 맨 처음 값을 출력하고 그 다음 값과 비교 후, 그 값이 더 작다면 그 값을 출력
참고로, cummin()을 for(), if() 함수를 통해 직접 구현해 본다면,
cummin()에게 고마움을 느낄 수 있습니다.
끝.
수고하셨습니다.
'R' 카테고리의 다른 글
[R] 행(row), 열(column) 이름, 순서 변경 및 맞추기 (0) | 2017.05.17 |
---|---|
[R] 정렬, 순위 함수 sort(), rank(), order() 비교 (2) | 2017.04.05 |
[R] 회귀분석(Regression Analysis) [회귀식 추정, 회귀모형 검정, 적합도 파악] (14) | 2017.03.09 |
[R] 상관분석(Correlation Analysis), [산점도, 공분산, 상관계수, 상관계수의 검정] (5) | 2017.03.01 |
[R] 비교연산자, 논리연산자 (0) | 2017.02.25 |
댓글