해당 포스트는 R에서 평균 계산(mean)시 사용할 수 있는 trim 옵션에 대해 소개합니다.
INTRO
R에서는 평균을 구해주는 내장함수 mean()
이 있습니다. 기본 함수로도 부족함없이 사용할 수 있으나 mean()
함수에서 제공되는 na.rm
과 trim
같은 효율성을 높여주는 옵션을 알아두시는 것이 좋습니다. 아래에서는 간단한 mean()
함수 설명과 옵션 사용법에 대해 예시와 함께 설명합니다.
mean() 함수
1. 기본 사용법
mean()
함수는 R에서 평균 계산을 위해 제공되는 기본(base) 함수이며, 사용법은 아래와 같습니다.
mean(x, trim = 0, na.rm = FALSE, ...)
- x : 평균 계산이 필요한 입력 데이터
- trim : 양극단(상한/하한) 데이터에서 일정 비율 제거
- na.rm = FALSE : 값이 TRUE일 경우, 결측치(NA)를 제외하고 평균 계산 (기본값 =
FALSE
)
2. 질문 풀이
네이버 지식인에서 질문 받은 데이터는 총 10개의 값을 가지는 숫자 벡터로 결측치가 없는 깔끔한 형태라 옵션 사용없이 평균을 구하여도 문제가 없습니다. 다만, trim
옵션을 통해 출력된 결과에 대한 해석이 필요한 상황이었고 이에 답변한 내용은 아래와 같습니다.
데이터 생성
aval <- c(5,4,7,6,8,10,11,0,7,18)
평균 계산
mean(aval)
[1] 7.6
trim을 사용한 평균 계산
mean(aval, trim=0.10)
[1] 7.25
위 출력 결과를 보면 trim
옵션을 적용하면서 평균이 7.6
에서 7.25
로 감소한 것을 볼 수 있습니다. trim
옵션은 지정된 비율만큼 상하한 값을 제거하기 때문에 위에서는 trim=0.10
로 인해
3. 처리 과정 이해하기
위에서 설명한 trim
옵션 적용 결과에 대해 실제 데이터로 보여드리겠습니다.
데이터 정렬
sort(aval)
[1] 0 4 5 6 7 7 8 10 11 18
먼저 데이터를 정렬해 보면 위와 같이 첫번째 벡터 0, 마지막 벡터 18인 10개의 숫자 벡터임을 확인할 수 있습니다. 여기서 trim=0.1
옵션을 적용하게 되면
trim=0.1
으로 계산한 평균
mean(aval, trim=0.1)
[1] 7.25
0과 18을 제외한 평균
mean(c(5,4,7,6,8,10,11,7))
[1] 7.25
이어서 trim=0.2
를 적용해 본다면 상하한의 20% = 2개의 데이터를 제외한 평균을 계산할 수 있습니다.
trim=0.2
으로 계산한 평균
mean(aval, trim=0.2)
[1] 7.166667
- 0과 4, 11과 18 을 제외한 평균
mean(c(5,7,6,8,10,7))
[1] 7.166667
마무리
이번 포스트에서는 R 내장 함수 중 평균을 계산해주는 mean()
에 대하여 설명하였습니다. 간단한 함수이지만 제공되는 옵션까지 알고 쓰신다면 필요한 곳에 효과적으로 사용하실 수 있을거라 생각합니다.
관련 링크
[1] [R] 성별로 키에 대한 평균, 분산, 표준편차 계산
[2] [R] 표본 평균, 중앙값, 표본 분산, 표본 표준편차
[3] [R] NA가 포함된 벡터의 평균 계산하기, NA를 평균값으로 대체하기
[4] [R] 새로운 컬럼에 행 평균값 계산하여 넣기