더북(TheBook)

그룹마다 연산을 쉽게 수행하기

지금까지 살펴본 plyr의 예에서는 adply( ) 또는 ddply( )에 임의의 사용자 정의 함수를 넘겨주어 분석을 수행했다. 그러나 공통적으로 자주 사용하는 유형의 계산은 transform( ), mutate( ), summarise( ), subset( )을 사용하면 더 간단히 표현할 수 있다. 다음 표에 이들 세 함수를 보였다.

표 5-5 데이터 변환 편의 함수

base::transform : 객체(예를 들면, 데이터 프레임)를 변환한다.

base::transform(
  _data # 변환할 객체
  ...   # 태그=값 형태의 인자들
)

데이터 프레임 _data에 ...에 지정한 연산을 수행한 뒤 그 결과를 저장한 새로운 컬럼을 추가한 데이터 프레임을 반환한다.

plyr::mutate : 데이터 프레임에 새로운 컬럼을 추가하거나 기존 컬럼을 수정한다.

plyr::mutate(
  .data, # 변환할 데이터 프레임
  ...    # 새로운 컬럼 정의. 컬럼명=값 형식
)

반환 값은 변환된 결과다. 변환이 이루어진다는 점은 transform( )과 같지만 컬럼명=값 형태로 지정된 연산이 여러 개 있을 때 앞서의 연산 결과를 뒤에 나오는 연산에서 참조할 수 있다는 차이가 있다.

plyr::summarise : 데이터 프레임을 요약한다.

plyr::summarise(
  .data, # 요약할 데이터 프레임
  ...    # 변수=값 형태의 인자들
)

...에 지정된 그룹마다의 요약을 수행한 뒤 그 결과를 저장한 새로운 컬럼이 추가된 데이터 프레임을 반환한다.

base::subset : 벡터, 행렬, 데이터 프레임의 일부를 반환한다.

subset(
  x,     # 일부를 취할 데이터
  subset # 데이터를 선택할지 여부를 지정한 논릿값 벡터
)

subset(
  x,
  subset,
  select # 선택할 컬럼의 벡터. 제외할 컬럼은 -를 붙여 표시함
)

반환 값은 일부만 선택된 데이터다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.