1

阿罗哈,

我正在尝试 cast() 一个数据集,其中 WXY 的每个唯一组合都返回 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() 来执行此操作吗?我只能返回每个唯一 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  

Mahalo 为您提供建议!

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 回答