1

アロハ、

WXYのすべての一意の組み合わせがZの最大数と関連する週を返すデータセットをcast()しようとしています。例えば:

W       X       Y       week    Z  
w1      x1      y1      1       0  
w1      x1      y1      2      0.1  
w1      x1      y1      3      0.2  
w2      x2      y1      1      0.5   
w2      x2      y1      2      0.7  
w2      x2      y1      3      0.3  
w3      x1      y1      1      0.1  
w3      x1      y1      2      0.2  
w3      x1      y1      3      0.5  
w4      x2      y2      1      0.7  
w4      x2      y2      2      0.3  
w4      x2      y2      3      0.1  
w5      x1      y2      1      0.3  
w5      x1      y2      2      0.1  
w5      x1      y2      3      0.2  

これをcast()で実行できますか?一意のWXYの組み合わせごとにZの最大数だけを返すことができますが、次の週は返すことができません。

cast(foo, W + X + Y ~ ., max, value="Z")

上記のデータセットの場合、出力は次のようになります。

W       X       Y       week    Z
w1      x1      y1      3      0.2
w2      x2      y1      2      0.7 
w3      x1      y1      3      0.5 
w4      x2      y2      1      0.7 
w5      x1      y2      1      0.3  

あなたの提案のためのマハロ!

4

1 に答える 1

3

castこれには適切なツールではありません。代わりに、plyrパッケージ内の関数を検討してください。

library("plyr")
ddply(foo, .(W, X, Y), summarise, week=week[which.max(Z)], Z=max(Z))
于 2012-10-02T19:04:57.623 に答える