logo

줄리아에서 0이나 결측치를 제외한 평균 구하는 법 📂줄리아

줄리아에서 0이나 결측치를 제외한 평균 구하는 법

개요

R 언어의 합계 sum()이나 평균 mean()에서는 함수 그 자체가 해당 결측치를 무시할 수 있는 옵션을 가지고 있는데, 줄리아에서는 그런 옵션이 없는 대신 함수형 프로그래밍functional Programming적인 방법을 적극적으로 사용한다.

코드

julia> data = [0,1,2,3,0]
5-element Vector{Int64}:
 0
 1
 2
 3
 0

julia> sum(data) / length(data)
1.2

julia> sum(data) / sum(!iszero, data)
2.0

위쪽은 $0$까지 포함해서 모든 표본의 수로 나눈 1.2, 아래쪽은 !iszero라는 함수를 인자로 주어서 $0$이 아닌 값만 카운트해서 얻은 표본의 수로 나눈 2.0을 얻었다. R보다 강력해진다고 할 수 있는 부분은, 함수 그 자체의 옵션에 의지하지 않고 같은 방법으로 isnan(), isinf(), ismissing() 등의 수많은 예외처리 함수들을 사용할 수 있으며 커스텀이 자유롭다는 것이다.

퍼포먼스에서 큰 차이는 없지만, is~ 계열의 함수처럼 그 리턴이 반드시 불리언이라면 분모의 sum()count()로 바뀌어도 상관없다.

환경

  • OS: Windows
  • julia: v1.7.0