함수란?
- 특정한 기능을 수행하기 위해 사전에 만들어 놓은 프로그래밍 구문을 묶어 놓은 것
함수의 종류
내장함수) 별도의 패키지를 설치하지 않고 사용할 수 있는 함수
외장함수) 별도의 패키지를 설치하고 사용할 수 있는 함수
사용자 정의 함수) 사전에 정의된 내장함수 이외에 사용자가 임의로 원하는 기능을 만들어서 사용할 수 있는 함수
내장함수
별도의 패키지를 설치하지 않고 사용할 수 있는 함수
ex. print(), sum(), Sys.Date(), c(), 형변환함수(as.numeric())
* Sys.Date()함수 사용 시 R은 글자의 대소문자를 구분하기에 정확하게 표기할 것
* 벡터관련내장함수 c(), append(),names()
외장함수
별도의 패키지를 설치하고 사용할 수 있는 함수
패키지(package) : 여러 함수를 기능에 따라 묶어서 제공하는 것,
하나의 패키지를 설치하면 안에 저장되어있는 여러 외장함수를 사용가능
패키지 설치 밎 사용
install.packages('패키지명') 으로 최초 설치 후
library(패키지명) 으로 로딩
remove.packages('패키지명')
- install.packages()함수를 사용하여 설치 필요
- library() 함수를 사용하여 불러오는 로드 과정을 수행
- 패키지 설치는 최초에 한번만 수행
- 패키지 로드는 일회성이기에 R 스튜디오를 시작할 때 마다 다시 실행
- 패키지를 설치, 삭제 시에는 패키지명을 ' '나 " "에 입력
- 패키지를 로드할 시에는 함수를 사용하는 것이기에 인수에 ' '나 " " 입력 불가
패키지에 있는 외장 함수 목록 조회하는 방법
1) 패키지명::
- 패키지 안에 있는 함수 목록 조회 가능
- 자동완성 기능이 안되면 조회 불가
2) ls()함수
- 지정된 변수의 목록을 반환하는 함수
- ls('package:패키지명')
- ls('package:base') # 내장함수의 종류를 조회하는 방법
사용자 정의 함수
사전에 정의된 내장함수 이외에 사용자가 임의로 원하는 기능을 만들어서 사용할 수 있는 함수
사용자 정의 함수는 다음과 같은 형식으로 정의한다.
함수명 <- function(...) {
내부 로직
return(리턴객체)
}
# ex.
f1 <- function(x) {
return(x * 100)
}
f1(123) #[1] 12300
사용자 함수 정의 시 여러개의 인자를 정의 할 수 있고, 각 인자는 기본 값을 가질 수 있으며
여러개의 인자를 선언 할 시, 먼저 선언된 인자가 기본값을 가지면 뒤에 선언된 인자도 기본값을 선언해줘야한다.
# x인자에는 기본값을 0으로 선언했으나 y에는 기본값을 선언이 되어 있지 않아 에러 발생
f2 <- function(x=0, y) {
res <- x + y
return(res)
}
# 이와 같이 먼저 선언된 인자에 기본값을 선언하면 뒤에 선언하는 인자도 기본값을 선언해야함
f2 <- function(x=0, y=0) {
res <- x + y
return(res)
}
# x,y를 선언한 함수에 x만 호출할 시 y는 기본값으로 함수 수행
f2(30) # [1] 30
f2(30, 40) # [1] 70
f2(c(30, 40)) # [1] 30 40
f2(c(30, 40), c(10,40)) # [1] 40 80
매개변수와 인자(인수)
매개변수(parameter) : 함수를 정의할 때 사용되는 임의의 값
ex. function(x=0,y=0)의 x=0,y=0이 매개변수
인자=인수(argument) : 함수를 호출할 때 사용되는 값
ex. f1(123)의 123이 인자(인수)
'R > R' 카테고리의 다른 글
[R] 09. 조건문(ifelse/if문) (0) | 2023.12.05 |
---|---|
[R] 08. 문자열관련함수(stringr) (0) | 2023.11.29 |
[R] 03. 형 변환(casting) (0) | 2023.11.22 |
[R] 02. 인덱싱(indexing) (0) | 2023.11.22 |
[R] 01. R의 자료구조 (0) | 2023.11.22 |