(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 받게 된다면 첫 번째 인덱스의 값은 곱한 값이 되고 두 번째 인덱스의 값은 나눈 값이 된다.
사용자 정의 함수의 저장 및 호출
- 사용자 지정 함수를 만들어서 디렉토리에 저장
- 그리고 또 다른 디렉토리에서 사용자 지정 함수가 있는 파일의 주소를 통해서 함수를 불러온다.

- 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 |