해당 포스트는 R에서 최솟값을 찾아주는 사용자 함수를 작성하는 방법을 소개합니다.
INTRO
R은 오픈소스 기반의 언어로, 공개된 커뮤니티에서 다양한 패키지들이 생성 및 공유되고 있습니다. 지금 이순간에도 새로운 패키지들이 생성되고 있으며, 개인적으로 이러한
이번 포스트에서는 최솟값을 찾아주는 min()
함수를 사용하지 않고 벡터 내 최솟값을 찾아주는 사용자 함수를 생성하는 방법을 설명합니다.
사용자 함수 만들기
R 내장 함수인 min()
함수를 사용하지 않고 최솟값을 찾는 방법 중 하나는 정렬(sort)을 이용하는 것입니다. 입력받은 벡터를 오름차순(incresing sort)으로 정렬하고 첫번째 값을 추출하는 방법으로, R에서는 내장 함수인 order()
를 사용하면 됩니다.
아래 코드는 최솟값을 찾아주는 사용자 함수 find_minimum_value()
를 생성하는 코드로 각 라인의 설명은 아래와 같습니다.
vlist
: 최솟값을 탐색이 필요한 입력 벡터vlist_order
: 입력받은vlist
를 오름차순 정렬하여 저장한 벡터result
: 오름차순 정렬된vlist_order
에서 첫번째 값을 추출하여 저장한 벡터
find_minimum_value <- function(vlist) {
vlist_order <- vlist[order(vlist, decreasing = FALSE)]
result <- vlist_order[1]
return(result)
}
결과 확인
1. 길이가 5인 숫자 벡터
k1 <- c(5,2,3,1,4)
k1
[1] 5 2 3 1 4
find_minimum_value(k1)
[1] 1
2. 1부터 100 사이에서 추출된 10개의 랜덤 숫자 벡터
k2 <- sample(1:100, 10)
k2
[1] 72 44 15 38 39 28 22 77 78 12
find_minimum_value(k2)
[1] 12
마무리
R에서 기본 제공되는 다양한 함수들도 내부적으로는 동작하기 위한 다른 코드들의 조합으로 만들어지게 됩니다. 프로그래밍을 공부하시는 분들에게는 기본 제공되는 함수들의 동작 및 출력을 이해하고, 동일한 결과를 만들 수 있는 다른 코드 및 구조를 만들어보는 것도 생각의 확장 연습에 큰 도움이 됩니다.
관련 링크
[1] [R] 최대/최소값 찾는 함수 만들기
[2] [R] 내가 원하는 구구단 출력 하기 (feat. 구구단 전체 출력)
[3] [R] return() 함수를 사용하는 이유