(Ch 7) apply함수&사용자 정의 함수

2024. 8. 26. 21:42확률 통계/R 데이터 분석

apply() 함수

apply() 함수의 개념

  • apply() 함수는 행들이나 열들의 자료들을 꺼내서 평균이나 합계를 구하는 작업에 유용하다.
apply(데이터 셋, 행/열 방향 지정,적용 함수)
  • 행 방향의 경우는 1, 열 방향의 경우는 2이다.
apply(iris[,1:4],1,mean)
apply(iris[,1:4],2,mean)
> apply(iris[,1:4],1,mean)
  [1] 2.550 2.375 2.350 2.350 2.550 2.850 2.425 2.525 2.225 2.400 2.700
 [12] 2.500 2.325 2.125 2.800 3.000 2.750 2.575 2.875 2.675 2.675 2.675
 [23] 2.350 2.650 2.575 2.450 2.600 2.600 2.550 2.425 2.425 2.675 2.725
 [34] 2.825 2.425 2.400 2.625 2.500 2.225 2.550 2.525 2.100 2.275 2.675
 [45] 2.800 2.375 2.675 2.350 2.675 2.475 4.075 3.900 4.100 3.275 3.850
......

> apply(iris[,1:4],2,mean)
Sepal.Length  Sepal.Width Petal.Length  Petal.Width 
    5.843333     3.057333     3.758000     1.199333
  • 첫 번째의 경우에는 행방향으로 1~4번째 데이터셋의 평균값을 구한 것이다.
  • 두 번째의 경우에는 열 방향으로 1~4번째 데이터셋의 평균값을 구한 것이다.

사용자 정의 함수

사용자 정의 함수 만들기

  • 직접 함수의 기능을 만들어서 제공하는 경우, 이를 사용자 정의 함수라고 한다.
함수명<-function(매개변수 목록){
  실행할 명령문들
  return (함수의 실행 결과)
}
f<-function(x,y){
  num_max<-x
  if(y>x){
    num_max<-y
  }
  return(num_max)
}
f(10,20)
> f(10,20)
[1] 20
  • 함수를 불러오기 위해서는 매개변수의 값에 알맞게 f()으로 불러준다.
  • 함수의 이름을 f로 지정해 주었고, 매개변수는 x, y로 지정해 주었다.
  • num_max라는 변수를 만들어 주고 x를 먼저 넣어준 다음에 만약 y가 x보다 더 크다면 y를 넣어주고 아니라면 넘어간다.
  • 마지막으로 실행한 결과를 return 해준다.

사용자 정의 함수 매개변수에 초기값 설정하기

f<-function(x=10,y=3){
  return(x/y)
}
f(10,5)
f(9)
f(,5)
> f(10,5)
[1] 2

> f(9)
[1] 3

> f(,5)
[1] 2
  • f함수를 지정해 주고 매개변수 y의 초기값을 3으로 지정해 주었다.
  • 만약 원래처럼 f(10,5)를 함수로 보낸다면 10/5=2라는 값이 나오게 된다.
  • 하지만 f(9)를 보낸다면 x=9가 되고 y는 초기값이 3이기 때문에 9/3=3이라는 값이 나오게 된다.
  • 또한 x값의 초기값을 그대로 두고 y값을 변화하고 싶으면 f(,5)와 같은 형식으로 보내면 된다.

함수가 반환하는 값이 여러 개일 경우

  • return 하는 값을 list로 묶어서 보낸다.
f<-function(x,y){
  return (list(x*y, x/y))
}
k<-f(20,10)
cat('20*10=',k[[1]])
cat('20/10=',k[[2]])
> k<-f(20,10)

> cat('20*10=',k[[1]])
20*10= 200
> cat('20/10=',k[[2]])
20/10= 2
  • k에 list로 return 받게 된다면 첫 번째 인덱스의 값은 곱한 값이 되고 두 번째 인덱스의 값은 나눈 값이 된다.

사용자 정의 함수의 저장 및 호출

  1. 사용자 지정 함수를 만들어서 디렉토리에 저장
  2. 그리고 또 다른 디렉토리에서 사용자 지정 함수가 있는 파일의 주소를 통해서 함수를 불러온다.

  • 4.R에 사용자 지정 함수를 저장

  • 그런 다음 call.R를 만들어서 4.R의 위치를 불러온다.
  • 그 후에 함수를 호출하여서 결과를 출력한다.
> setwd("C:/Users/---/OneDrive/문서/R Script")

> source("4.R")

> a<-f(20,4)

> cat("20*4=",a[[1]])
20*4= 80
> cat("20/4=",a[[2]])
20/4= 5

'확률 통계 > R 데이터 분석' 카테고리의 다른 글

단일변수 자료의 탐색  (0) 2024.08.29
(Ch8) 조건에 맞는 데이터의 위치 찾기  (1) 2024.08.26
(Ch 6) 반복문  (2) 2024.08.25
(Ch 5) 조건문  (0) 2024.08.25
(Ch 4) 매트릭스와 데이터프레임  (2) 2024.08.25