728x90

함수를 간단하게 만들어 보았습니다.

이를 바탕으로 마구 마구 복잡해 지는 게 함수입니다.

 

데이터분석을 하는 사람들은 어쩌면 자주 사용하지 않을 수 있습니다.
전처리과정을 열심히 거친 다음(삽질... 삽질... 삽질...)
그리고 어느 정도 데이터가 안정화되면 분석을 하거나, 모형을 개발을 진행합니다.

모형의 성능을 분석하기도 하고(또 이런 과정에서도 삽질... 삽질...)

이러느라 데이터분석을 하는 사람들에게는 함수가 별로 사용되지 않을 것 같이 보이기도 합니다.

그러나 분석업무가 반복이 되면, 하던 업무를 하나씩 함수로 만들어 가게 됩니다.

 

#***** 인수가 없는 가장 간단한 함수----

hello <- function() {

print("1. Hello World")

}

hello()   # 그냥 "1. Hello World" 가 출력됩니다. 

 

#*****  return 값이 있는 함수(인수 없음) ----

hap <- function() {

x <- 10

y <- 20

z <- x+y

return(z)

}

hap()    # 구태어 함수까지 만들 필요가 없는데 10 + 20은 30 ... 게다가 인수(parameter) 도 없고 

 

#***** return 값이 있는 경우(인수가 있는 경우) ----

hap_01 <- function(x,y) {

z <- x+y

return(z)

}

hap_01(10,20)  # 이제 조금 함수 같아 보이기 시작하네요
hap_01(30,50)  # 80 

 

 

#*****  분산, 표준편차 구하기----

var(c(1,2,3,4,5)) # 2.5   R 에서 기본으로 제공되는 var 함수(분산 구함)

sd(c(1,2,3,4,5)) # 1.581139  # R에서 기본으로 제공되는 표준편차 sd 함수, 제곱하면 분산

 

# (1) 분산 구하기

cal_var <- function(x) {

var <- sum((x-mean(x))^2)/(length(x)-1)  # 변수값에서 평균값을 빼고(오차)... 이것들을 제곱하여 합계를 구하고

                                                     # 그리고 자료갯수-1 로 나눈 것이 분산

return(var)

}

cal_var(c(1,2,3,4,5)) # 2.5

 

# (2) 표준편차 구하기

cal_std <- function(x) {

var <- sum((x-mean(x))^2)/(length(x)-1)

std <- sqrt(var)                                # 분산의 제곱근(sqrt) 를 구하면 표준편차

return(std)

}

std_cal(c(1,2,3,4,5)) # 1.581139

 

# (3) 분산, 표준편차 구하기

cal_var_sd <- function(x) {

var <- sum((x-mean(x))^2)/(length(x)-1)

std <- sqrt(var)

var_sd <- c(var,std)  # 분산과 표준편차 두 변수를 하나의 벡터로 묶음 핵심 ***

return(var_sd)

}

cal_var_sd(c(1,2,3,4,5)) # 2.500000 1.581139

 

 

#*****  홀수, 짝수 체크하기----

odd <- function(x) {

if (x %% 2 == 1) return(1)   # x 를 2로 나눈 나머지가 1이면 홀수 

else return(2)

}

odd(13)

odd(20)

 

+ Recent posts