R 기초 205 사용자 정의 함수 (User-written Functions)

R 기초 205 사용자 정의 함수 (User-written Functions)

preface 이번 포스트에서는 사용자 정의 함수를 사용하는 방법에 대하여 설명합니다.

다음 자료를 참고하였습니다:

R 이 강력한 이유 가운데 하나는 사실 대부분의 프로그래밍 언어가 그렇지만 사용자가 직접 함수를 만들어 쓸 수 있다는 것입니다. 실제로 대부분의 R 함수는 함수의 함수(function of functions)로 구성되어 있습니다. 사용자 정의 함수의 구조는 아래와 같습니다.

myfunction <- function(arg1, arg2, ... ){
statements
 return(object)
 }

함수의 object 는 해당 함수 안에서만 작동하는 지역(local) 변수입니다. object 는 모든 데이터 형식(data type)을 사용할 수 있습니다.

# function example - get measures of central tendency
# and spread for a numeric vector x. The user has a
# choice of measures and whether the results are printed.

mysummary <- function(x,npar=TRUE,print=TRUE) {
 if (!npar) {
   center <- mean(x); spread <- sd(x)
 } else {
   center <- median(x); spread <- mad(x)
 }
 if (print & !npar) {
   cat("Mean=", center, "\n", "SD=", spread, "\n")
 } else if (print & npar) {
   cat("Median=", center, "\n", "MAD=", spread, "\n")
 }
 result <- list(center=center,spread=spread)
 return(result)
}

# invoking the function
set.seed(1234)
x <- rpois(500, 4)
y <- mysummary(x)
Median= 4
MAD= 1.4826
# y$center is the median (4)
# y$spread is the median absolute deviation (1.4826)

y <- mysummary(x, npar=FALSE, print=FALSE)
# no output
# y$center is the mean (4.052)
# y$spread is the standard deviation (2.01927)

R 에서 funciton 의 코드를 보기 위해서는 function name 을 ( ) 없이 타이핑하면 됩니다. 만약 이 방법이 먹히지 않는다면 R wiki 등 구글링을 해봅시다.

자신이 만든 사용자 함수를 매번 호출해서 사용하고 싶을 수 도 있습니다. 이럴 때에는 R environment 를 설정하여 R 실행 시 불러올 수 있도록 합시다.


Tag Cloud

R    SQL    classification    demension reduction    jekyll    python    regression    supervised   
Hyeongjun Kim

Hyeongjun Kim

Financial Economist, Data Scientist, and Hearthstone Player

rss facebook twitter github youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora