더북(TheBook)

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( ) 역시 같은 형식으로 사용하면 된다.

표 4-8 행의 합과 평균 함수

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
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.