R 에서 조건부 합 조건부 평균 구하기
개요
엑셀이라고 치면 sumif()
혹은 averageif()
함수가 필요한 상황이 가끔 있다.R 에선 그처럼 단순한 함수는 없지만, 압도적인 상위호환으로 apply 계열 함수가 있다.
이 함수를 꼼꼼하게 익혀놓으면 좋긴한데, 당장은 급한대로 조건부 합과 조건부 평균만 구해보자.
예제
iris 데이터셋을 불러보자.
임의로 10, 50, 90, 130번째 데이터를 살펴보면 범주형 변수로써 종을 분류해놓은 것을 알 수 있다. 각 종별로 Sepal.Length
의 합과 평균을 구하려면 tapply()
함수를 사용하면 된다.
위의 예시에서 보이는대로, 첫번째 인수에는 계산할 데이터, 두번째 변수에는 분류 기준, 세번째엔 합이나 평균을 적으면 된다.
iris[c(10,50,90,130),]
tapply(iris<i>$</i>Sepal.Length,iris$Species,sum)
tapply(iris<i>$</i>Sepal.Length,iris$Species,mean)