함수를 간단하게 만들어 보았습니다.
이를 바탕으로 마구 마구 복잡해 지는 게 함수입니다.
데이터분석을 하는 사람들은 어쩌면 자주 사용하지 않을 수 있습니다. 모형의 성능을 분석하기도 하고(또 이런 과정에서도 삽질... 삽질...) 이러느라 데이터분석을 하는 사람들에게는 함수가 별로 사용되지 않을 것 같이 보이기도 합니다. 그러나 분석업무가 반복이 되면, 하던 업무를 하나씩 함수로 만들어 가게 됩니다. |
#***** 인수가 없는 가장 간단한 함수----
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)
'R연습 200제 > 04_00. R 프로그래밍' 카테고리의 다른 글
(R1)제6강(00) R프로그래밍 목차 (0) | 2020.11.19 |
---|---|
(R1)제06강(8.1) sample 함수 (0) | 2020.11.19 |
(R1)제6강(01) 조건에 맞는 요소 찾기 (0) | 2020.11.19 |