R 에서 조건부 합 조건부 평균 구하기

R 에서 조건부 합 조건부 평균 구하기

Conditional sum and Conditional mean in r

개요

엑셀이라고 치면 sumif() 혹은 averageif() 함수가 필요한 상황이 가끔 있다.R 에선 그처럼 단순한 함수는 없지만, 압도적인 상위호환으로 apply 계열 함수가 있다.

이 함수를 꼼꼼하게 익혀놓으면 좋긴한데, 당장은 급한대로 조건부 합과 조건부 평균만 구해보자.

예제

iris 데이터셋을 불러보자.

1.png

임의로 10, 50, 90, 130번째 데이터를 살펴보면 범주형 변수로써 종을 분류해놓은 것을 알 수 있다. 각 종별로 Sepal.Length의 합과 평균을 구하려면 tapply() 함수를 사용하면 된다.

20180812\_194931.png

위의 예시에서 보이는대로, 첫번째 인수에는 계산할 데이터, 두번째 변수에는 분류 기준, 세번째엔 합이나 평균을 적으면 된다.

iris[c(10,50,90,130),]
tapply(iris<i>$</i>Sepal.Length,iris$Species,sum)
tapply(iris<i>$</i>Sepal.Length,iris$Species,mean)
댓글