当用于按因子变量按日期汇总时,ddply很慢

时间:2012-12-13 20:24:13

标签: r

我在两个变量上运行'ddply'的时间非常糟糕,似乎应该是一个简单的命令。

样本数据(df):

Brand    Day     Rev     RVP              
  A      1        2535.00  195.00 
  B      1        1785.45  43.55 
  C      1        1730.87  32.66 
  A      2        920.00   230.00
  B      2        248.22   48.99 
  C      3        16466.00 189.00      
  A      1        2535.00  195.00 
  B      3        1785.45  43.55 
  C      3        1730.87  32.66 
  A      4        920.00   230.00
  B      5        248.22   48.99 
  C      4        16466.00 189.00

我正在使用命令:

df2<-ddply(df, .(Brand, Day), summarize, Rev=mean(Rev), RVP=sum(RVP))

我的数据框有大约2600个观察值,有45个级别的“品牌”和最多300个级别的“日”(使用'difftime'编码)。

我可以在“Day”分组时轻松使用'ddply',但当我尝试按“Brand”分组时,我的计算机会冻结。

思想?

1 个答案:

答案 0 :(得分:3)

您应该仔细阅读aggregatebyavetapply的帮助页面,密切关注每个人都期望参数的类型以及参数的名称。然后运行所有示例或demo()。 @hadley用pkg做的主要事情:plyr和reshape / reshape2是强加一定程度的规律性,但这是以牺牲速度为代价的。我明白他为什么这样做,特别是当我尝试使用base::reshape函数时,但是当我忘记了我反复这样做时,其中哪一个需要一个列表,这需要FUN =参数标签,这需要{ {1}}对于分组变量,....因为它们都有些不同。

interaction()