월요일
function
- function
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
# 함수 정의 방식 1 googoo81 <- function(x){ cat("\n") for (i in 1:9) { cat(x," * ",i," = ",x*i,"\n") } cat("\n") } # 함수 정의 방식 2 wd_count = function(x, sep=" ") { temp = gsub("[(),.?!/]",sep,x) temp = unlist(strsplit(temp,sep)) xrm = c("","a","an","the") temp = temp[!(temp %in% xrm)] # temp[temp!=""] return(table(tolower(temp))) }
R에서 사용자 정의 함수를 작성할 수 있다. 함수 정의 방식은 일반적으로 2가지이다.
function_name <- function() {}
과function_name = function() {}
이다.
일반적으로 함수의 parameter안에 들어가는 값은 default값을 지정해 줄 수 있다. 단, default가 없을 경우 에러코드가 함수 실행 시에 발생한다.
함수에 return값을 설정해주는 방식으로 보통 많이 활용한다. 하지만 R에서의 사용자 지정 함수는 함수에서 기록한 마지막 값을 자동으로 반환해준다.
변수
- 변수
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
a <- c(1,3,5,6) mean.k <- function(x,k) return(mean(x^k)) mean.k(a,2) mean.k2 <- function(x, k = 3) return(mean(x^k)) mean.k2(a,2); mean.k2(a) noact <- function(x, type = 1) { if(type == 1) a[1] <- 3 if(type == 2) a[1] <<- 3 return(a) }
- 변수는 일반적으로 2가지로 나눠진다. 지역변수와 전역변수. 지역변수의 지역변수와 전역변수의 차이는 Life cycle에 달려있다.
함수에 선언된 변수는 지역변수로 설정이 된다. 즉 해당함수가 종료되는 동시에 메모리에서 해제가 된다. 하지만 함수가 아닌 곳에 선언된 변수는 전역변수가 된다. 그 결과 전체 프로그램이 종료될 때까지 변수는 메모리에서 해제되지 않는다. - 전역 변수를 설정하고 싶다면 다음과 같은 기호를 써주면된다.
a[1] <<- 3
으로 작성해주면 지역변수가 설정되는 함수 내부에서도 외부의 전연변수 값을 변경할 수 있다.
- 변수는 일반적으로 2가지로 나눠진다. 지역변수와 전역변수. 지역변수의 지역변수와 전역변수의 차이는 Life cycle에 달려있다.
Comments powered by Disqus.