cast()数据集并返回两个值

时间:2012-10-02 18:56:51

标签: r

阿罗哈,

我正在尝试施放()一个数据集,其中W-X-Y的每个唯一组合返回Z的最大数量和相关的周数。例如:

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()这样做吗?我能够仅返回每个唯一W-X-Y组合的最大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  

Mahalo的建议!

1 个答案:

答案 0 :(得分:3)

cast不是正确的工具。请考虑plyr包中的函数:

library("plyr")
ddply(foo, .(W, X, Y), summarise, week=week[which.max(Z)], Z=max(Z))