2010-01-05 2 views
0

cast() 기능은 집계 값에 대한 마진을 계산에서 중대하다 :마진 계산을 ddply()에서 수행 할 수 있습니까?

cast(df, IDx1+IDx2~IDy1, margins=c('IDx1','IDx2','grand_row'),c(min, mean, max))

문제는 내가 두 번째 벡터 및 사용자 정의 기능을 사용하여 내 수단 체중 필요가있다.

ddply(d, IDx1+IDx2~IDy1 , function(x) 
c(
min(x$value), 
MyFancyWeightedHarmonicMeanFunction(x$value,x$weight), 
max(x$value) 
) 
) 

을 ...이 굉장 : 물론

, ddply()는 내 그룹화 기록에 사용자 정의 집계 함수를 적용 할 수 있습니다.

하지만 정말 날이 여부 cast()에서 두 벡터 함수를 호출하거나이 가능 어떻게 든 ddply().

에서 margins=() 변수 꾀병으로, 한 번에 두 가지를 할 수있는 능력이다 저장할 것인가?

ddply(d, "IDX1", ...) 
ddply(d, c("IDX1", "IDX2"), ...) 
ddply(d, "IDy1", ...) 

을 다음 rbind와 함께 결과를 결합 :

답변

2

이 여백을 직접 계산하는 데 꽤입니다. 이것을 일반 기능으로 감싸는 것은 그리 어렵지 않을 것입니다.

또한, 나는 원래 코드를 다시 작성 것 같은 :

ddply(d, IDx1+IDx2~IDy1, summarise, 
    min = min(value), 
    wt.mean = MyFancyWeightedHarmonicMeanFunction(value, weight), 
    max = max(value) 
) 
+0

해들리, 팁을위한 감사합니다. 함께 작동되는 별도의 ddply 작업은 내가 한 작업입니다. 아직도 내 머리를 모두 요약하고 변환합니다. –

+0

'rbind.fill'은 ddply가 다른 수의 열을 가진 데이터 프레임을 반환 할 때 특히 유용합니다. – Andrew

관련 문제