더북(TheBook)

mdply()

m{adl_}ply( ), 즉 maply( ), mdply( ), mlply( ), m_ply( ) 함수는 데이터 프레임 또는 배열을 인자로 받아 각 컬럼을 주어진 함수에 적용하고 그 실행 결과들을 조합한다. 여기서는 이들 중 mdply( )에 대해서 살펴본다.

표 5-6 mdply( ) 함수

plyr::mdply : 배열이나 데이터 프레임에 저장된 인자로 함수를 호출하고 결과를 데이터 프레임으로 반환한다.

plyr::mdply(
  .data, # 인자로 사용할 행렬 또는 데이터 프레임
  .fun   # 호출할 함수
)

반환 값은 데이터 프레임이다.

예를 들어, 평균과 표준 편차를 저장한 데이터 프레임을 가정해보자.

> (x <- data.frame(mean=1:5, sd=1:5))
  mean sd
1    1  1
2    2  2
3    3  3
4    4  4
5    5  5

mdply( )를 사용하면 위 데이터 프레임의 각 행을 rnorm( )3

함수의 mean, sd에 대한 인자로 넘겨주어 실행한 뒤 그 결과를 데이터 프레임으로 모을 수 있다. 다음 예에서는 각 mean, sd마다 2개씩 난수를 발생시켰다.

> mdply(x, rnorm, n=2)
  mean sd         V1        V2
1    1  1  0.8397891 0.5390922
2    2  2  4.9274472 6.5302294
3    3  3  5.2031884 1.9018554
4    4  4  7.5995477 5.0228909
5    5  5 14.2004666 5.1076554

3 ‘4.4.5 mapply( )’에서 설명한 함수로 rnorm(n, mean, sd)는 평균이 mean이고 표준 편차가 sd인 n개의 난수를 발생시키는 함수다.

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