티스토리 뷰

R

함수(function)

코린이도이 2021. 6. 6. 18:38

함수(function)

특정한 작업을 독립적으로 수행하는 프로그램 코드의 집합체

함수 기능 함수 기능
mean() 평균값을 계산 min(), max() 최소값, 최대값을 계산
sum() 합계를 계산 median() 중위수 계산
sd() 표준편차를 계산 cor() 상관계수 계산
var() 분산 계산 range() 범위 계산
sort() 정렬작업 수행 rev() 요소의 나열순서를 반대로 표시
> a<-c(33,12,55,66,77,16)
> rev(a)
[1] 16 77 66 55 12 33
> mean(a)
[1] 43.16667
> sort(a)
[1] 12 16 33 55 66 77
> range(a)
[1] 12 77
> median(a)
[1] 44
> sd(a)
[1] 26.90291
> var(a)
[1] 723.7667
> sum(a)
[1] 259

1. apply() 함수

  • 벡터, 행렬, 데이터프레임 등에서 행/열 단위의 필요한 계산작업을 쉽게 하는데 유용한 함수
  • 형식: apply(대상객체, 행 또는 열, 적용할 함수)
  • #dataframe 생성
    > height<-c(177,180,167,165,170,NA)
    > weight<-c(NA,77.3,80,60,NA,64)
    > df<-data.frame(신장=height,체중=weight)
    > names(df)<-c("신장","체중")
    > df
      신장 체중
    1  177   NA
    2  180 77.3
    3  167 80.0
    4  165 60.0
    5  170   NA
    6   NA 64.0
    
    #결측값(NA) 제외한 컬럼별(신장,체중) 평균 계산
    > apply(df,2,mean,na.rm=TRUE)
       신장    체중 
    171.800  70.325
    
    #lapply(): 계산결과를 list 형태로 변환하여 출력
    > lapply(df,max,na.rm=TRUE)
    $신장
    [1] 180
    
    $체중
    [1] 80
    
    #sapply(): 계산결과를 벡터 형태로 변환하여 출력
    > sapply(df,max,na.rm=TRUE)
    신장 체중 
     180   80
     
    #tapply(): 계산결과를 특정부분으로 그룹화하여 출력
    #tapply(벡터,인덱스,사용할함수)
    > df<-data.frame(나이=c(33,26,35,29,36),성별=c("남","남","여","여","남"),평점=c(4.3,4.2,4.1,3.7,4.5))
    > df
      나이 성별 평점
    1   33   남  4.3
    2   26   남  4.2
    3   35   여  4.1
    4   29   여  3.7
    5   36   남  4.5
    > tapply(df$평점,df$성별,mean)
          남       여 
    4.333333 3.900000 

2. 사용자 정의함수(function)

  • 프로그램에 반복적으로 사용되는 특별한 계산식을 직접 작성
  • 함수 생성형식
    • 함수이름 <- function(인자) {함수의 몸체...return(반환값)}
  • 인자: 함수가 사용할 인수들(argument) - 없을 수도 있음
  • 함수의 몸체: 함수가 호출되면 실행하게 될 프로그램 본문
  • 함수이름: 정의된 함수를 할당하여 생성되는 객체이름
  • #인자가 없는 가장 기본적인 함수 예제
    > guideinfo<-function(){
    +   writeLines("분석을 위한 안정된 프로그램 R")
    + }
    > guideinfo()
    분석을 위한 안정된 프로그램 R
    
    #인자가 있는 함수 예제
    > guideinfo<-function(msg){
    +   writeLines(msg)
    + }
    > guideinfo("분석작업 실행")
    분석작업 실행
    
    #basicst함수 생성: 인자만 입력하면 값 집단의 최소,최대,평균값, 분산, 표준편차까지 계산하는 함수 생성
    > basicst<-function(x){
    +   amin<-min(x)
    +   amax<-max(x)
    +   amean<-mean(x)
    +   astd<-sd(x)
    +   avar<-var(x)
    +   totinfo<-list(최소값=amin,최대값=amax,평균=mean,표준편차=astd,분산=avar)
    +   return(totinfo)
    + }
    > a<-c(68,75,80,85,92,77,83,85,95)
    > basicst(a)
    $최소값
    [1] 68
    
    $최대값
    [1] 95
    
    $평균
    function (x, ...) 
    UseMethod("mean")
    <bytecode: 0x1543abb98>
    <environment: namespace:base>
    
    $표준편차
    [1] 8.378212
    
    $분산
    [1] 70.19444

3. 외부파일에 정의한 함수 사용하기

  • 메모장에서 함수를 생성하고 저장함
  • source함수를 이용하여 외부에서 정의한 함수파일을 가져옴

'R' 카테고리의 다른 글

plot함수  (0) 2021.06.07
외부파일 읽어오기  (0) 2021.06.06
조건제어문(if, ifelse, for, while, repeat)  (0) 2021.06.06
데이터 프레임(data frame)  (0) 2021.06.06
리스트(list)와 행렬(matrix)  (0) 2021.06.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함