"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) )
我正在尝试在 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) )