mdply()
m{adl_}ply( ), 즉 maply( ), mdply( ), mlply( ), m_ply( ) 함수는 데이터 프레임 또는 배열을 인자로 받아 각 컬럼을 주어진 함수에 적용하고 그 실행 결과들을 조합한다. 여기서는 이들 중 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개의 난수를 발생시키는 함수다.