使用R汇总并返回基于“的平均值”;如果;标准

使用R汇总并返回基于“的平均值”;如果;标准,r,if-statement,conditional,aggregate,R,If Statement,Conditional,Aggregate,我想使用aggregate函数创建一个表,其中包含列date(结构化为日期)和time.to.complete(结构化为difftime),其中时间作为平均值计算。完成时间数据为负值。我想在计算平均值时排除所有负值 目前,我的聚合函数如下所示: mean.table<-aggregate(data$time.to.complete, list(data$date), mean) mean.table我们可以使用data.table library(data.table) setDT(da

我想使用
aggregate
函数创建一个表,其中包含列
date
(结构化为日期)和
time.to.complete
(结构化为difftime),其中时间作为平均值计算。
完成时间
数据为负值。我想在计算平均值时排除所有负值

目前,我的聚合函数如下所示:

mean.table<-aggregate(data$time.to.complete, list(data$date), mean)

mean.table我们可以使用
data.table

library(data.table)
setDT(data)[, .(MeanbyDate = mean(time.to.complete),
      MeanOveralltime = mean(data$time.to.complete[data$time.to.complete > 0])), by = date]
如果我们想让group by for
>0

setDT(data)[, .(MeanbyDate = mean(time.to.complete),
      MeanGreaterthan0 = mean(time.to.complete[time.to.complete > 0])), by = date]

那很有效!非常感谢你的帮助。
setDT(data)[, .(MeanbyDate = mean(time.to.complete),
      MeanGreaterthan0 = mean(time.to.complete[time.to.complete > 0])), by = date]