apply( )를 사용하여 아이리스 데이터의 Sepal.Length, Sepal.Width, Petal.Length, Petal.Width 컬럼의 합을 구해보자. 다음 코드에서 iris[, 1:4]는 아이리스 데이터 프레임의 모든 행에서 1 ~ 4컬럼만 가져온다는 의미다.
> head(iris) Sepal.Length Sepal.Width Petal.Length Petal.Width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa ... > apply(iris[, 1:4], 2, sum) Sepal.Length Sepal.Width Petal.Length Petal.Width 876.5 458.6 563.7 179.9
이와 같은 행 또는 열의 합 또는 평균의 계산은 빈번히 사용되므로 rowSums( ), rowMeans( ), colSums( ), colMeans( ) 함수가 미리 정의되어 있다. 표 4-8에 행 방향의 합과 평균에 대한 함수를 정리했다. colSums( ), colMeans( ) 역시 같은 형식으로 사용하면 된다.
rowSums : 숫자 배열 또는 데이터 프레임에서 행의 합을 구한다. |
rowSums( x, # 배열 또는 숫자를 저장한 데이터 프레임 na.rm=FALSE, # NA를 제외할지 여부 ) 반환 값은 행 방향에 저장된 값의 합이다. |
rowMeans : 숫자 배열 또는 데이터 프레임에서 행의 평균을 구한다. |
rowSums( x, # 배열 또는 숫자를 저장한 데이터 프레임 na.rm=FALSE, # NA를 제외할지 여부 ) 반환 값은 행 방향에 저장된 값의 평균이다. |
다음은 앞서 apply( )를 통해 구한 계산을 colSums( )로 수행하는 예다.
> colSums(iris[, 1:4])
Sepal.Length Sepal.Width Petal.Length Petal.Width
876.5 458.6 563.7 179.9