"aggregate" R 中 "ifelse" 语句内部的函数

"aggregate" function inside of "ifelse" statement in R

我正在尝试在 R 中的 "ifelse" 语句中使用 "aggregate" 函数。 我想 return NA 如果最小销售额等于 0,那么如果不聚合它。喜欢下面的代码:

 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))

我的问题是return这个:

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

我希望它成为 return 数据框,如通常聚合:

 day sales
1 Mon  2158
2 Tue  5436

除了@A.Webb的评论,我想你想用匿名函数把if放在aggregate里面:

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