2010-01-05 54 views
0

cast()功能是在計算利潤的合計值大:我可以在ddply()中進行保證金計算嗎?

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

的問題是,我需要使用加權第二向量和自定義函數我的手段。

當然,ddply()讓我應用自定義功能聚集到我的分組的記錄:

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

...這是真棒。

但真正能夠拯救世界的同時做兩件事,無論是通過調用cast()兩個載體功能或通過某種方式僞造的ddply().

margins=()變量這是可能的能力嗎?

回答

2

這是很給自己計算邊距:

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

,然後將結果與rbind結合在一起。把它包裝成一般功能並不難。

而且,我已經重寫你的原始代碼:

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

哈德利, 謝謝你的提示。獨立的ddply操作,結合在一起,正是我所做的。我的頭腦還在總結和改變。 – 2010-01-06 05:52:04

+0

當ddply返回具有不同列數的數據幀時,'rbind.fill'特別有用。 – Andrew 2013-01-24 15:31:32

相關問題