[R] Function (사용자 정의 함수) Start
BioinformaticsAndMe
R function
: 프로그래밍 언어에서 함수(Function)는 반복적으로 사용될 수 있는 문장 블록의 형태
: R은 여러 내장 함수(Built-In function)을 제공하며, 사용자가 직접 자신의 함수(User defined function)를 정의할 수 있음
1. 함수 생성 및 실행
# function 커맨드를 사용하여, 새로운 함수(myfunc)를 생성
myfunc <- function() {
print('Hello, World!')
}
# 정의된 함수(myfunc)를 실행
myfunc()
[1] "Hello, World!"
2. 함수에 특정 인수값 전달하기
: 사용자는 인수(Argument)를 통해, 특정 값을 함수에 전달할 수 있음
: 인수는 function 커맨드 다음에 있는 괄호 안에서 선언됨
*쉼표로 구분하여 지정된 개수만큼 인수 전달 가능
# x, y 인수를 갖는 함수 생성
sum <- function(x, y) { x + y }
# sum 함수에 특정 인수값을 전달하여 실행 sum(2, 3)
[1] 5
3. 기본값(Default value) 지정하기
: 함수에서 인수는 기본값을 지정할 수 있음
: 사용자가 인수 입력없이 함수를 호출하면 기본값이 사용됨
# 인수 y에 기본값 3을 지정
pow <- function(x, y=3) { x ^ y }
# y 인수값이 입력되지 않았으므로, 기본값 'y=3'이 사용됨 pow(2)
[1] 8
# y 인수값이 입력됐으므로, 'y=4'이 사용됨
pow(2, 4)[1] 16
4. 함수값 반환하기
: 함수에서 특정값을 반환하기 위해서, return 커맨드를 사용
# return 커맨드를 사용하여, 함수값 반환
sum <- function(x, y) { return(x + y) } sum(2, 3)
[1] 5
# 결과를 벡터(or 리스트)에 저장하여, 여러 값을 동시에 반환할 수 있음
math <- function(x, y) {
add <- x + y sub <- x - y mul <- x * y div <- x / y c(addition = add, subtraction = sub, multiplication = mul, division = div) } math(6, 3)
addition subtraction multiplication division 9 3 18 2
5. 인수의 개수가 가변적인 상황
: 함수 생성시 생략부호(...)를 사용하여, 개수가 가변적인 인수를 수용함
: 사용자가 함수에 전달할 인수의 개수를 미리 알지 못하는 상황에서 유용함
# 아래 myfunc 함수는 생략부호(...)를 사용하여 , 모든 인수를 수용할 수 있음
myfunc <- function(x, ...) {
print(x)
summary(...)
}
v <- 1:10 myfunc("Summary of v:", v)
[1] "Summary of v:" Min. 1st Qu. Median Mean 3rd Qu. Max. 1.00 3.25 5.50 5.50 7.75 10.00
#Reference
1) https://www.learnbyexample.org/r-functions/
[R] Function (사용자 정의 함수) End
BioinformaticsAndMe
'R' 카테고리의 다른 글
[R] Neuroimaging Analysis (0) | 2021.02.01 |
---|---|
[R] 국민건강영양조사 분석 (1) | 2021.02.01 |
[R] Logistic regression (로지스틱 회귀분석) (0) | 2020.01.21 |
[R] Multiple linear regression (다중회귀분석) (1) | 2020.01.14 |
[R] ChIP-seq 분석 (1) | 2020.01.05 |