【发布时间】:2014-09-07 01:31:56
【问题描述】:
我刚开始使用ddply 并发现它非常有用。我想汇总一个数据框,并根据汇总列是否具有特定值来删除最终输出中的某些行。这就像 SQL 中的 HAVING 和 GROUP BY。这是一个例子:
input = data.frame(id= c( 1, 1, 2, 2, 3, 3),
metric= c(30,50,70,90,40,1050),
badness=c( 1, 5, 7, 3, 3, 99))
intermediateoutput = ddply(input, ~ id, summarize,
meanMetric=mean(metric),
maxBadness=max(badness))
intermediateoutput[intermediateoutput$maxBadness < 50,1:2]
这给出了:
id meanMetric
1 1 40
2 2 80
这是我想要的,但我可以在ddply 语句中以某种方式一步完成吗?
【问题讨论】:
-
如果您还没有对
plyr非常投入,那么您可能会从直接访问dplyr中受益,这是新的改进版本。 -
只要确保你没有同时加载它们