"聚合"功能内部" ifelse" R中的陈述

时间:2015-02-06 03:22:52

标签: r aggregate-functions

我正在尝试使用"聚合"功能内部" ifelse" R中的陈述 如果最小销售额等于0,我想返回NA,如果没有汇总则返回NA。比如下面的代码:

 df <- data.frame(day=c("Mon","Tue","Mon","Tue","Tue","Tue"),sales=c(799,1359,1359,1359,1359,1359))
df2 <- ifelse(min(df$sales)==0,NA,aggregate(sales~day,data=df,sum))

我的问题是它返回了这个:

[[1]]
[1] Mon Tue
Levels: Mon Tue

我希望它返回一个通常聚合的数据框:

 day sales
1 Mon  2158
2 Tue  5436

1 个答案:

答案 0 :(得分:3)

除了@ A.Webb的评论之外,我想你想使用匿名函数将if置于aggregate内:

aggregate(sales ~ day, data=df, function(x) if(min(x)==0) NA else sum(x) )